我有15个csv文件,其中一列代表年份。问题是year列在某些文件中被命名为'year'而在另一个文件中被命名为'year_'。所以我有两列对我有相同的信息,但由于每个文件只有一个列名(年份或年份),如果第1行的值为'year','year_'有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
你可以使用combine_first功能。
df['YEAR'] = df['year'].combine_first(df['year_'])
其中df['year']
将是默认值,df['year2']
将用于填充空值。
鉴于只有一个具有有效值,您可以简单地在轴1上求和它们
year_cols = df.columns[df.columns.str.contains('year')]
df['year'] = df[year_cols].sum(1)
与@Vaishali相同的想法:你可以将年份列相加;使用filter
选择列:
df.filter(like='year').sum(axis=1)