如何在Pandas中合并两个专属列?

问题描述:

我有两列,这些列是独占的。 如果column1中第i行的条目是NaN,我想用第2列中的任何内容替换NaN。如何快速完成而无需迭代所有行?如何在Pandas中合并两个专属列?

你可以做类似

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 
+0

现在看来似乎不起作用。如果列1中的元素是NaN,我想用列2中的第i个元素中的元素替换第1列中的第i个元素。 –

+0

我已经添加了一个说明它如何工作的例子。 – fuglede