当前位置: 代码迷 >> python >> Python:如何合并来自两个不同数据框的特定列
  详细解决方案

Python:如何合并来自两个不同数据框的特定列

热度:47   发布时间:2023-07-14 08:43:34.0

我是python新用户,想问一下是否有可能合并或合并来自不同数据帧的数据帧,但它们具有一列具有相同信息的列吗?

Data 1             Data2
DocID GroupID      DocID  ClassID    
123     A12        123    X
123     A24        123    Y
124     A24        124    Z
124     C12        124    F
125     A12        125    G

我希望结果会像这样

Results
            DocID  123 124 125
Group_ID Class_ID
  A12      X        1   0   0
  A24      Y        1   0   0
  A24      Z        0   1   0
  C12      F        0   0   1
  A12      G        0   0   1

感谢您的提前帮助T___T

要合并数据集,您可以在将DocID设置为索引后(如果尚未设置)将它们连接起来:

>>> merged = pd.concat((df1.set_index('DocID'), df2.set_index('DocID')), axis=1)
>>> print(merged)

      GroupID ClassID
DocID
123       A12       X
123       A24       Y
124       A24       Z
124       C12       F
125       A12       G

之后,要模仿您想要的结果,您将需要获取索引的虚拟对象。 一种简单的方法是在重置索引后仅使用pd.get_dummies来获取它们:

>>> pd.get_dummies(merged.reset_index(), columns=['DocID'])

      GroupID ClassID  DocID_123  DocID_124  DocID_125
0     A12       X          1          0          0
1     A24       Y          1          0          0
2     A24       Z          0          1          0
3     C12       F          0          1          0
4     A12       G          0          0          1

但是,如果您确实需要多索引虚拟变量,则需要对索引进行虚拟化,然后从中构造出一个多索引列,然后将它们与merged数据框连接起来。

  相关解决方案