python - 如何重新索引两个熊猫数据框中的列,以使它们都具有相同的列?
问题描述
我有两个数据框
df1
>>>
a b
0 1 4
1 2 5
2 3 6
df2
>>>
a c
0 9 8
1 0 1
2 0 0
我想做的是在每个数据框中创建不重叠的列并用零填充它们。因此,因为df1
不包含c
来自的列df2
,df2
也不包含b
来自的列df1
,所以最终结果将是
df1
>>>
a b c
0 1 4 0
1 2 5 0
2 3 6 0
df2
>>>
a c b
0 9 8 0
1 0 1 0
2 0 0 0
实现这一目标的最佳方法是什么?
我试过使用reindex
and reindex_like
,但前者似乎只重新索引行而不是列,我不知道使用什么参数来重新索引列
df1.reindex(df2.columns, fill_value=0.)
>>>
a b
a 0.0 0.0
c 0.0 0.0
解决方案
df1, df2 = df1.align(df2, fill_value=0)
print (df1)
print (df2)
a b c
0 1 4 0
1 2 5 0
2 3 6 0
a b c
0 9 0 8
1 0 0 1
2 0 0 0
您的解决方案与Index.union
列:DataFrame.reindex
axis=1
c = df1.columns.union(df2.columns)
df1, df2 = df1.reindex(c, fill_value=0, axis=1), df2.reindex(c, fill_value=0, axis=1)
print (df1)
print (df2)
a b c
0 1 4 0
1 2 5 0
2 3 6 0
a b c
0 9 0 8
1 0 0 1
2 0 0 0
推荐阅读
- javascript - 图表 js - 将宽度设置为特定条形
- buffer - 缓冲点并将它们重叠以计算面积
- c - 双链表中的标头结构不起作用,可能是 addNode 函数错误?
- python - RuntimeError: You must setup() the GPIO channel first (4x4 Numpad on Raspberry Pi)
- django - 如何从 django 中的过滤查询集中访问值内的字段?
- swift - 如何在自定义开始和结束时间之间的自定义间隔设置通知
- android - 深度链接有时会打开错误的活动
- python-3.x - 如何将类型注释解析为启用 PEP563 的本地类型
- sequelize.js - 如何知道实例中是否调用了更新?续集
- android - Android 设备 - 远程镜像