我遇到了将3个数据帧与相同的索引(在本例中,索引是日期)连接在一起的问题。我正在尝试将三个不同的数据帧绘制到一个绘图图形上,并计算出组合这些数据帧将是最简单的。目前,我使用的代码如下。
pd.concat([df1,df2,df3], axis = 1)
但是我提出了下面的错误。
ValueError: cannot reindex from a
duplicate axis
我的数据帧结构如下。
A
7/28/2018 4
7/29/2018 5
B
7/28/2018 3
7/29/2018 4
C
7/28/2018 1
7/29/2018 2
我想要下面的结果:
A B C
7/28/2018 4 3 1
7/29/2018 5 4 2
有人能解释一下我在这里做错了什么吗?
发布于 2018-07-29 23:12:42
你应该确保你的索引是精确的相同的。这是一个最小的例子,展示了你可以连接重复的索引,只要它们是相同的:
idx = ['7/28/2018', '7/28/2018', '7/29/2018']
df_A = pd.DataFrame({'A': [1, 2, 3]}, index=idx)
df_B = pd.DataFrame({'B': [4, 5, 6]}, index=idx)
df_C = pd.DataFrame({'C': [7, 8, 9]}, index=idx)
res = pd.concat([df_A, df_B, df_C], axis=1)
print(res)
A B C
7/28/2018 1 4 7
7/28/2018 2 5 8
7/29/2018 3 6 9
即使对其中一个索引进行重新排序,也会导致这一点崩溃。另一种解决方案是在连接之前删除重复的索引,请参见Remove rows with duplicate indices。
https://stackoverflow.com/questions/51585164
复制相似问题