Pandas 데이터 프레임 fillna () 일부 열만 제자리에 있음
일부 열 하위 집합에 대해서만 Pandas 데이터 프레임의 값을 0으로 채우려 고하지 않습니다.
내가 할 때 :
import pandas as pd
df = pd.DataFrame(data={'a':[1,2,3,None],'b':[4,5,None,6],'c':[None,None,7,8]})
print df
df.fillna(value=0, inplace=True)
print df
출력 :
a b c
0 1.0 4.0 NaN
1 2.0 5.0 NaN
2 3.0 NaN 7.0
3 NaN 6.0 8.0
a b c
0 1.0 4.0 0.0
1 2.0 5.0 0.0
2 3.0 0.0 7.0
3 0.0 6.0 8.0
every None
를 0
's로 대체합니다 . 무엇 내가하고 싶은 만 교체 None
열에들 a
하고 b
있지만 c
.
이를 수행하는 가장 좋은 방법은 무엇입니까?
원하는 열을 선택하고 할당하여 수행 할 수 있습니다.
df[['a', 'b']] = df[['a','b']].fillna(value=0)
결과 출력은 예상대로입니다.
a b c
0 1.0 4.0 NaN
1 2.0 5.0 NaN
2 3.0 0.0 7.0
3 0.0 6.0 8.0
당신은 사용 할 수 있습니다 dict
, fillna
다른 컬럼에 대해 서로 다른 값으로
df.fillna({'a':0,'b':0})
Out[829]:
a b c
0 1.0 4.0 NaN
1 2.0 5.0 NaN
2 3.0 0.0 7.0
3 0.0 6.0 8.0
다시 할당 한 후
df=df.fillna({'a':0,'b':0})
df
Out[831]:
a b c
0 1.0 4.0 NaN
1 2.0 5.0 NaN
2 3.0 0.0 7.0
3 0.0 6.0 8.0
Wen의 솔루션과 inplace = True를 사용하여 개체의 복사본을 만드는 것을 피할 수 있습니다.
df.fillna({'a':0, 'b':0}, inplace=True)
print(df)
결과 :
a b c
0 1.0 4.0 NaN
1 2.0 5.0 NaN
2 3.0 0.0 7.0
3 0.0 6.0 8.0
한 줄로 모든 작업을 수행하는 방법은 다음과 같습니다.
df[['a', 'b']].fillna(value=0, inplace=True)
Breakdown: df[['a', 'b']]
selects the columns you want to fill NaN values for, value=0
tells it to fill NaNs with zero, and inplace=True
will make the changes permanent, without having to make a copy of the object.
using the top answer produces a warning about making changes to a copy of a df slice. Assuming that you have other columns, a better way to do this is to pass a dictionary:
df.fillna({'A': 'NA', 'B': 'NA'}, inplace=True)
Or something like:
df.loc[df['a'].isnull(),'a']=0
df.loc[df['b'].isnull(),'b']=0
and if there is more:
for i in your_list:
df.loc[df[i].isnull(),i]=0
참고URL : https://stackoverflow.com/questions/38134012/pandas-dataframe-fillna-only-some-columns-in-place
'developer tip' 카테고리의 다른 글
AngularJS : 지시문 범위에서 = & @의 차이점은 무엇입니까? (0) | 2020.08.11 |
---|---|
jQuery를 사용하여 대상 요소에서 클릭 좌표를 얻는 방법 (0) | 2020.08.11 |
/ 로그인 또는 / 등록 리소스를 RESTfully 설계 하시겠습니까? (0) | 2020.08.11 |
ggplot2에서 범례 항목 사이의 간격을 변경하는 방법이 있습니까? (0) | 2020.08.11 |
Django URL TypeError : view는 callable이거나 include ()의 경우 목록 / 튜플이어야합니다. (0) | 2020.08.11 |