【发布时间】:2018-08-01 22:02:22
【问题描述】:
我已经运行了以下代码:
df1 = pd.DataFrame({'HPI':[80,85,88,85],
'Int_rate':[2, 3, 2, 2],
'US_GDP_Thousands':[50, 55, 65, 55]},
index = [2001, 2002, 2003, 2004])
df3 = pd.DataFrame({'HPI':[80,85,88,85],
'Unemployment':[7, 8, 9, 6],
'Low_tier_HPI':[50, 52, 50, 53]},
index = [2001, 2002, 2003, 2004])
print(pd.merge(df1,df3, on='HPI'))
我得到的输出是:
HPI Int_rate US_GDP_Thousands Low_tier_HPI Unemployment
0 80 2 50 50 7
1 85 3 55 52 8
2 85 3 55 53 6
3 85 2 55 52 8
4 85 2 55 53 6
5 88 2 65 50 9
我的问题是
1) 为什么我有这么大的数据框。 HPI 只有 4 个值,但在输出中生成了 6 行。
2) 如果合并将从 HPI 中获取所有值,那么为什么值 80 和 88 没有被分别获取两次?
【问题讨论】:
-
我强烈建议您通读pandas documentation on merges。您的问题更多是关于一般理解合并,并且那里的教程有一些示例可以展示您可以期待的内容。
-
@jpp :: 当然可以...我会这样做...谢谢:)
标签: python-3.x pandas dataframe indexing merge