Pandas DataFrame의 조건부 교체
Pandas DataFrame에서는 조건에 따라 값을 교체하는 것이 일반적인 작업입니다. 임계값을 초과하는 경우 특정 열의 값을 0으로 설정해야 하는 상황을 생각해 보세요.
원래 접근 방식:
이를 달성하기 위한 일반적인 접근 방식 중 하나는 다음과 같습니다. Pandas 버전 0.20.0에서 더 이상 사용되지 않는 df[].ix 인덱서를 사용하여
df[df.my_channel > 20000]['my_channel'] = 0
대체 솔루션:
loc 및 iloc 인덱서가 도입되면서 조건부 대체를 수행하는 권장 방법은 다음과 같습니다.
loc 활용하기 인덱서:
mask = df['my_channel'] > 20000 df.loc[mask, 'my_channel'] = 0
loc 인덱서는 부울 마스크를 기반으로 행 및 열을 선택할 수 있습니다. 이 경우 마스크는 df['my_channel'] > 20000이며 이 행은 'my_channel' 열에서 0으로 설정됩니다.
iloc 인덱서 사용:
mask = df['my_channel'] > 20000 df.iloc[mask.index, df.columns.get_loc('my_channel')] = 0
iloc 인덱서는 다음을 기반으로 선택할 수 있습니다. 정수 인덱스. 이 경우 마스크 인덱스를 사용하여 행을 선택하고 'my_channel'의 열 인덱스를 사용하여 값을 0으로 설정합니다.
참고: 이 구체적인 경우에는 iloc은 정수 열에 대한 부울 인덱싱을 지원하지 않으므로 iloc 인덱서보다 loc 인덱서를 사용하는 것이 좋습니다.
위 내용은 조건에 따라 Pandas DataFrame 값을 효율적으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!