使用具有重叠列名的 Pandas 连接多个数据框?

标签 join merge pandas

我有多个(超过 2 个)数据框想要合并。它们都共享相同的值列:

In [431]: [x.head() for x in data]
Out[431]: 
[                     AvgStatisticData
DateTime                             
2012-10-14 14:00:00         39.335996
2012-10-14 15:00:00         40.210110
2012-10-14 16:00:00         48.282816
2012-10-14 17:00:00         40.593039
2012-10-14 18:00:00         40.952014,
                      AvgStatisticData
DateTime                             
2012-10-14 14:00:00         47.854712
2012-10-14 15:00:00         55.041512
2012-10-14 16:00:00         55.488026
2012-10-14 17:00:00         51.688483
2012-10-14 18:00:00         57.916672,
                      AvgStatisticData
DateTime                             
2012-10-14 14:00:00         54.171233
2012-10-14 15:00:00         48.718387
2012-10-14 16:00:00         59.978616
2012-10-14 17:00:00         50.984514
2012-10-14 18:00:00         54.924745,
                      AvgStatisticData
DateTime                             
2012-10-14 14:00:00         65.813114
2012-10-14 15:00:00         71.397868
2012-10-14 16:00:00         76.213973
2012-10-14 17:00:00         72.729002
2012-10-14 18:00:00         73.196415,
....etc

我读到 join 可以处理多个数据帧,但是我得到:

In [432]: data[0].join(data[1:])
...
Exception: Indexes have overlapping values: ['AvgStatisticData']

我尝试过传递rsuffix=["%i" % (i) for i in range(len(data))]加入并仍然得到相同的错误。我可以通过构建我的 data 来解决这个问题以列名称不重叠的方式列出,但也许有更好的方法?

最佳答案

In [65]: pd.concat(data, axis=1)
Out[65]:
                     AvgStatisticData  AvgStatisticData  AvgStatisticData  AvgStatisticData
2012-10-14 14:00:00         39.335996         47.854712         54.171233         65.813114
2012-10-14 15:00:00         40.210110         55.041512         48.718387         71.397868
2012-10-14 16:00:00         48.282816         55.488026         59.978616         76.213973
2012-10-14 17:00:00         40.593039         51.688483         50.984514         72.729002
2012-10-14 18:00:00         40.952014         57.916672         54.924745         73.196415

关于使用具有重叠列名的 Pandas 连接多个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003769/

相关文章:

MySQL 更新内连接别名

mysql - 我想显示来自 2 个或更多查询的所有记录,这些记录也不在左侧查询中

python - Pandas 完整外部索引与 NaN 连接以处理不匹配的索引

Excel - 两个图形合二为一(并排)

python - 将不同的 seaborn 面网格组合成单个图

mysql - 这两个mysql查询之间的区别?

mysql - 查询期间的空值

python - 如何合并两个列表?为集合操作保留相同的列表元素

python - 将最后一行除以组的第一行

python - 从一列列表到多列