python - Pandas 匹配数据帧结构
问题描述
我有两个数据框,如下所示:
d = {'var1': [1, 2, 3, 4], 'var2': [5, 6, 7, 8], 'var3': [9, 10, 11, 12]}
df = pd.DataFrame(data=d)
df
var1 var2 var3
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12
和
d2 = {'var1': [4, 1, 3], 'var2': [5, 7, 7]}
df2 = pd.DataFrame(data=d2)
df2
var1 var2
0 1 5
1 2 7
2 3 7
我希望 df2 具有与原始 df 相同的列和列顺序
所以结果看起来像:
df2
var1 var2 var3
0 1 5 NaN
1 2 7 NaN
2 3 7 NaN
我知道我可以在此示例中手动分配一个名为“var3”的新列并将其值设置为 NaN,但我正在寻找一个通用解决方案,该解决方案需要在具有许多列的许多数据帧上完成。
解决方案
尝试使用reindex
:
df2.reindex(df.columns, axis=1)
输出:
var1 var2 var3
0 4 5 NaN
1 1 7 NaN
2 3 7 NaN
推荐阅读
- django - Django rest api 过滤错误信息:django.core.exceptions.FieldError: Related Field got invalid lookup
- javascript - 按名称搜索用户的最佳方法是什么?
- c++ - 如何从多图中删除重复的字符串值
- jquery-ui - 多次使用 jquery-ui 滑块,但由 php 以编程方式设置不同的最小最大值
- elasticsearch - Kibana 可视化中的聚合聚合
- arrays - 使用 ReactJS 映射数组
- mysql - 如何从 Oracle 存储过程中选择/插入 MySQL 表?
- ruby - Ruby 对象 to_s 对象 id 的编码是什么?
- php - 是否可以删除当前帖子标题的最后一句话并回显结果?
- angular - 在父组件中的元素上设置类