结合两列pandas数据帧

时间:2017-12-13 21:29:22

标签: python-2.7 pandas dataframe

我有15个csv文件,其中一列代表年份。问题是年份列被命名为“年份”。在一些文件和'年_'在另一个。所以我有两列对我有相同信息,但由于每个文件只有一个列名(年份或年份),如果第1行在'年',' year_& #39;有NaN。我想将这两列合并,以便我可以摆脱NaN。这样做的最佳方式是什么?

       year     year_
 1     NaN      1999
 2     2002     NaN
 3     2000     NaN
 .
 .
 .
 N     NaN      2004

我希望这是

       year
 1     1999
 2     2002
 3     2000
 .
 .
 .
 N     2004

3 个答案:

答案 0 :(得分:4)

您可以使用combine_first功能。

df['YEAR'] = df['year'].combine_first(df['year_'])

其中df['year']为默认值,df['year2']将用于填充空值。

答案 1 :(得分:2)

鉴于只有一个具有有效值,您可以简单地在轴1上对它们求和

year_cols = df.columns[df.columns.str.contains('year')]
df['year'] = df[year_cols].sum(1)

答案 2 :(得分:0)

@Vaishali相同的想法:你可以将年份列相加;使用filter选择列:

df.filter(like='year').sum(axis=1)