为了账号安全,请及时绑定邮箱和手机立即绑定

根据索引合并两个数据框

根据索引合并两个数据框

开满天机 2023-06-20 16:44:51
我整晚都在研究这个,就是想不通,尽管我知道这应该很简单。所以,我对一个睡眠不足的家伙的以下咒语表示最诚挚的歉意:因此,我有四个字段,Employee ID、Name、Station 和 Shift(ID 为非空整数,其余为字符串或空值)。我有大约 10 个数据帧,全部按 ID 索引。每个只包含两列(名称和站)或(名称和班次)现在当然,我想将所有这些组合到一个数据框中,每个 ID 都有一个唯一的行。但在这一点上我真的很沮丧(特别是因为我找不到直接检查我的最终数据框以多少个唯一索引结尾的方法)在弄乱了一些使用 .merge() 的非常丑陋的方法之后,我终于找到了 .concat()。但它一直为每个 ID 制作多行,当我在 excel 中检查时,索引就像 Table1/1234、Table2/1234 等。一行有班次,另一行有站,这正是我试图避免的.如何将所有数据编译到一个数据框中,每个 ID 恰好一行?可能不使用 9 个不同的合并语句,因为我以后必须扩大规模。
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

如果我正确理解你的问题,这就是你想要的。


例如这 3 个数据框..


In [1]: df1

Out[1]:

          0         1         2

0  3.588843  3.566220  6.518865

1  7.585399  4.269357  4.781765

2  9.242681  7.228869  5.680521

3  3.600121  3.931781  4.616634

4  9.830029  9.177663  9.842953

5  2.738782  3.767870  0.925619

6  0.084544  6.677092  1.983105

7  5.229042  4.729659  8.638492

8  8.575547  6.453765  6.055660

9  4.386650  5.547295  8.475186


In [2]: df2

Out[2]:

           0          1

0  95.013170  90.382886

2   1.317641  29.600709

4  89.908139  21.391058

6  31.233153   3.902560

8  17.186079  94.768480


In [3]: df

Out[3]:

          0         1         2

0  0.777689  0.357484  0.753773

1  0.271929  0.571058  0.229887

2  0.417618  0.310950  0.450400

3  0.682350  0.364849  0.933218

4  0.738438  0.086243  0.397642

5  0.237481  0.051303  0.083431

6  0.543061  0.644624  0.288698

7  0.118142  0.536156  0.098139

8  0.892830  0.080694  0.084702

9  0.073194  0.462129  0.015707

你可以做


pd.concat([df,df1,df2], axis=1)

这产生


In [6]: pd.concat([df,df1,df2], axis=1)

Out[6]:

          0         1         2         0         1         2          0          1

0  0.777689  0.357484  0.753773  3.588843  3.566220  6.518865  95.013170  90.382886

1  0.271929  0.571058  0.229887  7.585399  4.269357  4.781765        NaN        NaN

2  0.417618  0.310950  0.450400  9.242681  7.228869  5.680521   1.317641  29.600709

3  0.682350  0.364849  0.933218  3.600121  3.931781  4.616634        NaN        NaN

4  0.738438  0.086243  0.397642  9.830029  9.177663  9.842953  89.908139  21.391058

5  0.237481  0.051303  0.083431  2.738782  3.767870  0.925619        NaN        NaN

6  0.543061  0.644624  0.288698  0.084544  6.677092  1.983105  31.233153   3.902560

7  0.118142  0.536156  0.098139  5.229042  4.729659  8.638492        NaN        NaN

8  0.892830  0.080694  0.084702  8.575547  6.453765  6.055660  17.186079  94.768480

9  0.073194  0.462129  0.015707  4.386650  5.547295  8.475186        NaN        NaN

有关更多详细信息,您可能希望查看pd.concat


将简单的说明性数据放入您的问题中的提示总是有助于获得答案。


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信