我有一个包含目标列列表的列表:
cols = ["col1", "col2", "col4"]
然后我有几个具有不同列数的熊猫数据帧。我必须从cols
中选择列。如果数据帧中不存在 cols
中的列之一,则应生成 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
将DataFrame.reindex
与列列表一起使用,如果没有NaN
列添加匹配项:
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