如何在Pandas中的数据框中组合两列?

时间:2015-11-26 07:59:02

标签: python pandas

假设我的数据框中有两列A和B:

A  B
1  NaN
2  5
3  NaN
4  6

我想获得一个新列C,它使用A列中的值填充B列中的NaN单元格:

A  B   C
1  NaN 1
2  5   5
3  NaN 3
4  6   6

我该怎么做?

我确信这是一个非常基本的问题,但由于我是Pandas的新手,任何帮助都将不胜感激!

3 个答案:

答案 0 :(得分:6)

您可以使用combine_first

df['c'] = df['b'].combine_first(df['a'])

文档:http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.Series.combine_first.html

答案 1 :(得分:5)

您可以使用where这是一个矢量化if / else:

df['C'] = df['A'].where(df['B'].isnull(), df['B'])

   A   B  C
0  1 NaN  1
1  2   5  5
2  3 NaN  3
3  4   6  6

答案 2 :(得分:2)

df['c'] = df['b'].fillna(df['a'])

那么.fillna会做的是它将填充数据框中的所有Nan值 我们可以传递任何价值 这里我们传递值df ['a'] 所以这个方法会将'a'的相应值放入'b'的Nan值中 最后的答案将在'c'