【发布时间】:2017-05-14 12:07:34
【问题描述】:
我有一个框架看起来像:
2015-12-30 2015-12-31
300100 am 1 3
pm 3 2
300200 am 5 1
pm 4 5
300300 am 2 6
pm 3 7
另一个框架看起来像
2016-1-1 2016-1-2 2016-1-3 2016-1-4
300100 am 1 3 5 1
pm 3 2 4 5
300200 am 2 5 2 6
pm 5 1 3 7
300300 am 1 6 3 2
pm 3 7 2 3
300400 am 3 1 1 3
pm 2 5 5 2
300500 am 1 6 6 1
pm 5 7 7 5
现在我想合并两个帧,合并后的帧是这样的:
2015-12-30 2015-12-31 2016-1-1 2016-1-2 2016-1-3 2016-1-4
300100 am 1 3 1 3 5 1
pm 3 2 3 2 4 5
300200 am 5 1 2 5 2 6
pm 4 5 5 1 3 7
300300 am 2 6 1 6 3 2
pm 3 7 3 7 2 3
300400 am 3 1 1 3
pm 2 5 5 2
300500 am 1 6 6 1
pm 5 7 7 5
我尝试了 pd.merge(frame1,frame2,right_index=True,left_index=True),但它返回的不是所需的格式。任何人都可以帮忙吗?谢谢!
【问题讨论】:
-
frame1.index和frame2.index是什么?输出有什么问题? -
frame1.index 是 MultiIndex(levels=[[300100.0, 300200.0, 300300.0], ['am', 'pm']], labels=[[0, -1, 1, -1, 2, -1], [0, 1, 0, 1, 0, 1]])
-
frame2.index 是 MultiIndex(levels=[[300100.0, 300200.0, 300300.0, 300400.0, 300500.0], ['am', 'pm']], labels=[[0, -1, 1 , -1, 2, -1, 3, -1, 4, -1], [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]])。部分输出看起来像 2016-02-01 00:00:00_x 2016-02-02 00:00:00_x \ 300100.0 am 1 3 300200.0 am 5 1 300300.0 am 2 6
-
谢谢。但我认为更好的是如果您将图片更改为文本(因为不可能复制您的示例数据)并将有问题的输出添加到问题文本中,因为 cmets 中的格式有问题。
-
一个想法 -
pd.concat([frame1, frame2], axis=1)或pd.concat([frame1, frame2], axis=1, join='inner')是如何工作的?
标签: python-3.x pandas dataframe concat multi-index