如何在python中基于某个“主键”合并两列

2024-06-16 15:54:20 发布

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

我有两个数据帧:

id      Name     CTI
 1      abc       123
 2      vbfd      456
 3      ewrwe     789 
 4      ewr       4w4
 4      qweqw     434
 4      poitg     4311
 5      edfsdf    113
 5      wqeweqw   314

以及

 id      Name     MAX
 1      abc       1323
 2      vbfd      45634
 3      ewrwe     789343
 4      ewr       4w4324
 4      qweqw     434324
 4      poitg     43112342
 5      edfsdf    113324
 5      wqeweqw   3142342

我想把CTI列添加到第二个数据帧中。 基本上我想要

id      Name     MAX          CTI
 1      abc       1323        123
 2      vbfd      45634       456
 3      ewrwe     789343      789 
 4      ewr       4w4324      4w4
 4      qweqw     434324      434
 4      poitg     43112342    4311
 5      edfsdf    113324      113
 5      wqeweqw   3142342     314

我该怎么办


Tags: 数据nameidmaxabcctiewrqweqw
3条回答

我需要df的名字,但是让我们组成两个,df1和df2

df2['CTI'] = df1['CTI']

这样就可以了

df2['CTI']=df1['CTI']

这将在df2数据帧中创建一个值为df1 CTI字段的新列

假设df2:

 id      Name     MAX
 1      abc       1323
 2      vbfd      45634
 3      ewrwe     789343
 4      ewr       4w4324
 4      qweqw     434324
 4      poitg     43112342
 5      edfsdf    113324
 5      wqeweqw   3142342

和df1:

id      Name     CTI
 1      abc       123
 2      vbfd      456
 3      ewrwe     789 
 4      ewr       4w4
 4      qweqw     434
 4      poitg     4311
 5      edfsdf    113
 5      wqeweqw   314

在应用df2['CTI']=df1['CTI']之后,df2是所需的输出:

id      Name     MAX          CTI
 1      abc       1323        123
 2      vbfd      45634       456
 3      ewrwe     789343      789 
 4      ewr       4w4324      4w4
 4      qweqw     434324      434
 4      poitg     43112342    4311
 5      edfsdf    113324      113
 5      wqeweqw   3142342     314

如果主键很重要,则可以使用此语法,该语法必须将howinner值一起使用

combined_df = df2.merge(df1, how = 'inner', on = ['id'])

这将基于id的相等性将df2中不存在的字段和df1中存在的字段与d2的所有字段连接起来

相关问题 更多 >