열 중 하나에 적용된 조건에 따라 데이터 프레임의 2 개 열에있는 값을 null로 설정하려고합니다.
조건에 따라 1 열의 값을 null로 설정하는 방법을 알고 있습니다. col3을 사용하여 다음 예제에서 수행합니다. 내 질문은 같은 행의 col2 값을 null로 설정하는 방법입니다.
df = pd.DataFrame([['a',1, 10],
['b',2, 20],
['c',3, 30],
['d',4, 40],
['e',5, 50]], columns=['col1','col2','col3'])
df
Out[121]:
col1 col2 col3
0 a 1 10
1 b 2 20
2 c 3 30
3 d 4 40
4 e 5 50
df['col3'].mask(df['col3']<30,inplace=True)
df
Out[123]:
col1 col2 col3
0 a 1 NaN
1 b 2 NaN
2 c 3 30.0
3 d 4 40.0
4 e 5 50.0
다음을 시도했지만 작동하지 않습니다.
df['col2','col3'].mask(df['col3']<30,inplace=True)
내가 원하는 출력은
col1 col2 col3
0 a NaN NaN
1 b NaN NaN
2 c 3 30.0
3 d 4 40.0
4 e 5 50.0
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html 에서 df.loc을 사용해 볼 수 있습니다 .
이렇게하면 행을 선택하는 조건과 변경 사항을 적용 할 열 목록을 지정할 수 있습니다.
numpy의 상수 NaN 사용 : https://docs.scipy.org/doc/numpy/reference/constants.html?highlight=nan#numpy.nan .
df.loc[df['col3']<30,['col2','col3']] = np.nan
결과 df는 다음과 같습니다.
col1 col2 col3
0 a NaN NaN
1 b NaN NaN
2 c 3.0 30.0
3 d 4.0 40.0
4 e 5.0 50.0
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다