1
私は2つの列を持ち、これらの列は排他的です。 column1のi行のエントリがNaNの場合、NaNをcolumn2のものに置き換えます。どのようにすべての行を反復せずにすばやくそれを行うには?パンダで2つの排他的な列をマージするには?
私は2つの列を持ち、これらの列は排他的です。 column1のi行のエントリがNaNの場合、NaNをcolumn2のものに置き換えます。どのようにすべての行を反復せずにすばやくそれを行うには?パンダで2つの排他的な列をマージするには?
あなたは(よりパフォーマンスかもしれない)代わり
df.loc[df.column1.isnull(), 'column1'] = df.column2
かのようなもの、例えば
df.column1 = np.where(df.column1.isnull(), df.column2, df.column1)
を行うことができます:それは動作しないよう
In [29]: df = pd.DataFrame({'column1': [1.2, np.nan, 3.3, np.nan], 'column2': [5.1, 6.2, 7.1, 8.4]})
In [30]: df
Out[30]:
column1 column2
0 1.2 5.1
1 NaN 6.2
2 3.3 7.1
3 NaN 8.4
In [31]: df.loc[df.column1.isnull(), 'column1'] = df.column2
In [32]: df
Out[32]:
column1 column2
0 1.2 5.1
1 6.2 6.2
2 3.3 7.1
3 8.4 8.4
に思えます。列1の要素がNaNの場合、列1のi番目の要素を列2のi番目の要素に置き換えます。 –
どのように動作するかを示す例を追加しました。 – fuglede