이 두 가지 기능은 저와 같습니다. 열 c와 d가 동일하므로 아래 코드에서 동일한 목표를 달성 한 것을 볼 수 있습니다. 언제 다른 하나를 사용해야합니까?combine_first와 fillna의 차이점은 무엇입니까?
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0, 10, size=(10, 2)), columns=list('ab'))
df.loc[::2, 'a'] = np.nan
반환 :
a b
0 NaN 4
1 2.0 6
2 NaN 8
3 0.0 4
4 NaN 4
5 0.0 8
6 NaN 7
7 2.0 2
8 NaN 9
9 7.0 2
이 나의 출발점이 여기에
은 예입니다. 지금은 fillna을 사용하여 두 사람이 combine_first 사용하여 열 및 하나를 추가하며, 이러한 항목은 동일한 결과를 생성합니다 :df['c'] = df.a.combine_first(df.b)
df['d'] = df['a'].fillna(df['b'])
반환 값 : 데이터 세트에 대한이 질문에
a b c d
0 NaN 4 4.0 4.0
1 8.0 7 8.0 8.0
2 NaN 2 2.0 2.0
3 3.0 0 3.0 3.0
4 NaN 0 0.0 0.0
5 2.0 4 2.0 2.0
6 NaN 0 0.0 0.0
7 2.0 6 2.0 2.0
8 NaN 4 4.0 4.0
9 4.0 6 4.0 4.0
제공 : Combine Pandas data frame column values into new column
를
저는 팬더에 익숙하지 않지만 [fillna] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.fillna.html)로 더 많은 제어권을 가지고있는 것으로 보입니다. [combine_first] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.combine_first.html)는 일회성 계약입니다 – Wondercricket