在 Pandas 中合并数据框(没有列名)
Posted
技术标签:
【中文标题】在 Pandas 中合并数据框(没有列名)【英文标题】:Merge Dataframes in Pandas (without column names) 【发布时间】:2018-09-28 08:40:48 【问题描述】:这个问题与Using Merge on a column and Index in Pandas 密切相关,但我在一些不同的地方进行了编辑。
我有两个数据框,第二个的索引与另一个的第一列完全相同。两个数据框都只有一列(和索引),并且该列没有名称。
我想沿着 DF1 的列和 DF2 的索引之间匹配的值连接两个数据框,并维护 DF1 的索引。
DF1=
A Z
乙是
C X
你
DF2 =
Z 2000
Y 2300
X 1300
U 900
一种可能的解决方案可能是:
merged = pd.merge(DF1, DF2, left_index=True, right_on=??)
但是我会用什么来引用 DF2 中的列?
另外,将 DF 设置为系列会有什么不同吗?
【问题讨论】:
嗨@jezrael 这个q可以打开吗? 如果columns没有名字就代表是series,所以需要DF2 = DF2.to_frame('col')
我已经有 DF1 和 DF2 作为数据帧,我可以在 "right_on=" 参数中按数字引用 DF2 的第 1 列吗?
不,不可能。
如果 DF1 和 DF2 最初设置为具有 1 列的数据框,是否将它们设置为 Series 以启用合并?
【参考方案1】:
如果使用Series
:
DF1 = pd.Series('C': 'X', 'A': 'Z', 'B': 'Y', 'D': 'U')
DF2 = pd.Series('U': 900, 'X': 1300, 'Y': 2300, 'Z': 2000)
print (DF1)
A Z
B Y
C X
D U
dtype: object
print (DF2)
U 900
X 1300
Y 2300
Z 2000
dtype: int64
merged = DF1.to_frame('A').join(DF2.rename('B'), on='A')
print (merged)
A B
A Z 2000
B Y 2300
C X 1300
D U 900
【讨论】:
以上是关于在 Pandas 中合并数据框(没有列名)的主要内容,如果未能解决你的问题,请参考以下文章