使用 pandas 追加、连接、连接或合并两个数据框
Posted
技术标签:
【中文标题】使用 pandas 追加、连接、连接或合并两个数据框【英文标题】:Append, Concat, Join or Merge Two dataframes with pandas 【发布时间】:2018-09-27 19:40:09 【问题描述】:如何组合这两个数据帧以从我用 pandas 创建的两个数据帧中获得所需的输出?
df1 =
OBJECTID Test #
0 1 1
1 2 2
2 3 3
3 4 4
4 5 5
5 6 6
6 7 7
7 8 8
8 9 9
df2 =(索引为 2,因为它是一个切片)
ObjectID Test Number
2 ObjectID Test Number
左边的“列”是索引,标题在顶部。我希望输出是
OBJECTID Test #
0 ObjectID Test Number
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
这个:
df2 = df2.reset_index(drop=True)
frame_append = df2[["OBJECTID","Test #"]].combine_first(df1)
给予:
OBJECTID Test #
0 ObjectID Test Number
1 2 2
2 3 3
3 4 4
4 5 5
5 6 6
6 7 7
7 8 8
8 9 9
【问题讨论】:
看起来像XY problem。你真的只是想重命名一些列吗?或者插入一些值? 我正在寻找插入值。我有两个数据框,它们是从两个单独的 .csv 文件创建的。 【参考方案1】:你可以这样做。先重置设置索引。
df2[[1,2]].combine_first(df1)
输出:
0 1 2
0 0.0 ObjectID Test Number
1 1.0 2 2
2 2.0 3 3
3 3.0 4 4
4 4.0 5 5
5 5.0 6 6
6 6.0 7 7
7 7.0 8 8
8 8.0 9 9
【讨论】:
我得到“KeyError: '[1 2] not in index'” df2 的索引实际上是 2 你是什么列标题?它们是字符串 try [['1','2']] 吗? 您需要在df2 = df2.reset_index()
上重置索引以将该行放在 df 的顶部。否则,它将将该行放在 df 中的索引 2 处。
我应该指定两个数据框中的第一列是索引,而不是数据框中的实际列。道歉。这会改变 [1,2] 吗?
我厌倦了 [0,1] 并收到错误消息 KeyError: '[0 1] not in index'以上是关于使用 pandas 追加、连接、连接或合并两个数据框的主要内容,如果未能解决你的问题,请参考以下文章
Python使用pandas读取两个或者多个excel文件(xlsx)并进行数据连接(join)合并两个或者多个excel的信息