考虑两个数据帧df_a
和df_b
:
>>> df_a = pd.DataFrame.from_dict({1: [1,2,3], 2: ["a", "b", "c"], 3:[4,5,6]})
>>> df_a.index = pd.Index([0,1,3])
>>> print(df_a)
1 2 3
0 1 a 4
1 2 b 5
3 3 c 6
>>> df_b = pd.DataFrame.from_dict({2: ["d", "e", "f", "g"]})
>>> print(df_b)
2
0 d
1 e
2 f
3 g
以及以下代码:
^{pr2}$生成所需的数据帧(df_e
):
有没有更有效的方法去df_e
?我尝试过使用pd.concat
、pd.merge
和{
df_a
的索引(也就是说,这些值没有相同的索引-某种索引创建是“在幕后”发生的)。在df_a
值所在的位置。在基本上,我要执行的操作是:
df_b
的值更新{df_b
中存在没有相应索引/列的值,请适当展开df_a
以包含这些值(按适当的顺序保存索引/列)。在编辑:提供了更好的例子,不是自然排序的。在
阅读熊猫join和博客here和{a3}应该会对你有所帮助。在
来自博客:
我可以想出两种简单的ish方法来获得您的
df_e
;不过,我不打算过多地考虑列顺序。向df_b
添加额外的列4,只是为了显示df_a
中不存在的列的行为:或者
^{pr2}$注意对齐所引入的数据类型的细微差别。在
这是一种方法:
结果:
^{pr2}$相关问题 更多 >
编程相关推荐