假设我的数据框中有两列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的新手,任何帮助都将不胜感激!
答案 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'