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

run*_*kid 5 python pandas

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

A  B
1  NaN
2  5
3  NaN
4  6
Run Code Online (Sandbox Code Playgroud)

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

A  B   C
1  NaN 1
2  5   5
3  NaN 3
4  6   6
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

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

eum*_*iro 6

你可以使用combine_first:

df['c'] = df['b'].combine_first(df['a'])
Run Code Online (Sandbox Code Playgroud)

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

  • 真的很优雅,这是最好的解决方案! (2认同)

Col*_*vel 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
Run Code Online (Sandbox Code Playgroud)