これらの2つの機能は私と同じようです。列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
これは私の出発点です。今、私は2つの列、combine_firstを使用して1とfillnaを使用して1を追加します、そして、彼らは同じ結果を生成します:Combine Pandas data frame column values into new column
:データセットのためにこの質問に 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
クレジット:
df['c'] = df.a.combine_first(df.b)
df['d'] = df['a'].fillna(df['b'])
戻り値を
私はパンダにはあまりよく慣れていませんが、[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)は1対1の取引です – Wondercricket