我就是不能将同名的行添加到另一个数据集中?

2024-04-19 07:58:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做什么;将dataset中同名列的数据与dataset2中同名列的数据组合在一起。但是,当我选择join='inner'时,仅创建同名列的数据集。当我选择join='outer'时,所有列都被添加到数据集中。但我想做的是;保持数据集中的列数相同,并将dataset2中同名的列数据添加到数据集中同名的列中。我确实对此进行了研究,付出了很长的努力,但我做不到。我想我很困惑。已经谢谢你的帮助了

new = pd.concat([dataset,dataset2] ,join='inner') 

数据集:

        Message Source     Customer Id        Social Medya          Subject
        0     Whatsapp           1047           İnstagram     Product information                         
        1     Whatsapp           6211           Facebook      Product İnformation

数据集2:

        Message Source     Customer Id     Social Medya      Contact Number
        0     Whatsapp           1256           İnstagram          005115..                          
        1     Whatsapp           5687           İnstagram           005115.. 

我要创建的表

        Message Source     Customer Id        Social Medya          Subject
        0     Whatsapp           1047           İnstagram     Product information                         
        1     Whatsapp           6211           Facebook      Product İnformation
        2     Whatsapp           1047           İnstagram                                  
        3     Whatsapp           6211           Facebook   

2条回答

当查看您的客户ID时,它看起来就像您只想复制数据集1 如果您通常需要所有信息,则需要一个“完整”联接,其中包括所有匹配或不匹配的数据

但是如果你想要这样的东西:

Message Source     Customer Id        Social Medya          Subject
        0     Whatsapp           1047           İnstagram     Product information                         
        1     Whatsapp           6211           Facebook      Product İnformation
        2     Whatsapp           1256           İnstagram                                  
        3     Whatsapp           5687           İnstagram     

 

我宁愿杀死col“联系人号码”并制作如下内容:

df1.append(df2)

直到你不给我们更多的信息,你真正想要的栏目和真正需要的信息。我只能猜测。正如我所说。它看起来更像一个复制品。也许我错过了什么

这就是我根据你的问题所做的尝试

首先,我们有如下两个数据:

list1.txt

Message Source,Customer Id,Social Medya,Subject
Whatsapp,1047,İnstagram,Product information                         
Whatsapp,6211,Facebook,Product İnformation

list2.txt

Message Source,Customer Id,Social Medya,Contact Number
Whatsapp,1256,İnstagram,005115
Whatsapp,5687,İnstagram,005115

然后,我们创建脚本,查看相同的列,选择数据,并与“基本”数据帧连接

以下是一个例子:

import pandas as pd

df1 = pd.read_csv('list1.txt')
df2 = pd.read_csv('list2.txt')
headers = pd.concat([df1,df2] ,join='inner').columns
df3 = pd.concat([df1,df2[headers]], join='outer', ignore_index=True)
print(df3)

最后,我们可以根据您对问题的期望得到我们想要的

  Message Source  Customer Id Social Medya                                       Subject
0       Whatsapp         1047    İnstagram  Product information                         
1       Whatsapp         6211     Facebook                           Product İnformation
2       Whatsapp         1256    İnstagram                                           NaN
3       Whatsapp         5687    İnstagram                                           NaN

相关问题 更多 >