如何选择列并为不存在的列生成 Nan 值?
Posted
技术标签:
【中文标题】如何选择列并为不存在的列生成 Nan 值?【英文标题】:How to select columns and generate Nan values for non-existing columns? 【发布时间】:2019-08-27 07:53:03 【问题描述】:我有一个包含目标列列表的列表:
cols = ["col1", "col2", "col4"]
然后我有几个具有不同列数的 pandas DataFrame。我必须从cols
中选择列。如果 cols
中的一列在 DataFrame 中不存在,则应生成 NaN 值。
df1 =
col1 col3
1 x1
2 x2
3 x3
df2 =
col1 col2 col4
1 f1 car3
3 f2 car2
4 f5 car1
例如,df2[cols]
运行良好,但 df1[cols]
显然失败。我需要df1
的以下输出
df1 =
col1 col2 col3
1 NaN NaN
2 NaN NaN
3 NaN NaN
【问题讨论】:
How to add an empty column to a dataframe?的可能重复 【参考方案1】:将DataFrame.reindex
与列列表一起使用,如果没有匹配则添加NaN
s 列:
df1 = df1.reindex(cols, axis=1)
print (df1)
col1 col2 col4
0 1 NaN NaN
1 2 NaN NaN
2 3 NaN NaN
所以对于df2
,返回相同的列:
df2 = df2.reindex(cols, axis=1)
print (df2)
col1 col2 col4
0 1 f1 car3
1 3 f2 car2
2 4 f5 car1
【讨论】:
以上是关于如何选择列并为不存在的列生成 Nan 值?的主要内容,如果未能解决你的问题,请参考以下文章