在连接具有相同索引的3个数据帧时遇到问题(在这种情况下,索引是日期)。我试图将三个differnetnet数据框绘制到一个可绘制的图上,并且将这些数据框组合起来将是最简单的。目前,我正在使用以下代码。
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
有人可以在这里解释我在做什么吗?
答案 0 :(得分:0)
您应确保您的索引准确相同。这是一个最小的示例,显示您可以并入重复的索引,只要它们是相同的:
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。