如何将数据帧列中的值设置为基于另一个数据帧的值

2024-05-13 19:53:55 发布

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

我有两个数据帧-Final_df和Cust_LCK。在最后的_df数据帧中,我有一列名为“Cust Group”的空值,另一列名为“Acct”#(两个数据帧之间的链接)。另一个数据帧(Cust_LCK)有一个标题为“Acct#”的列,其中包含唯一的帐号,“Cust Group”包含帐号所属的客户组

如何与客户群体一起填写最终的_df中的空白


Tags: 数据标题df客户链接group空白群体
1条回答
网友
1楼 · 发布于 2024-05-13 19:53:55

您可以使用^{}将值从Cust_LCK映射到Final_df

import pandas as pd


df = pd.DataFrame({'A': [5, 6, 7, 8, 9], 'B': [1, 2, 3, 4, 5]})

Final_df = pd.DataFrame({
    'Acct#'     : range(0, 5),
})

Final_df['Cust Group'] = ''

Cust_LCK = pd.DataFrame({
    'Acct#'     : range(5, 0, -1),
    'Cust Group': range(10, 15)
})

Final_df['Cust Group'] = Final_df['Acct#'].map(Cust_LCK.set_index('Acct#')['Cust Group'])

如果在Cust_LCK列的值上有重复项,请仅将其中一个保留为pandas.DataFrame.drop_duplicates()

Final_df['Cust Group'] = Final_df['Acct#'].map(Cust_LCK.drop_duplicates(subset['Acct#']).set_index('Acct#')['Cust Group'])

如果Cust_LCK中的重复行具有不同的Cust Group值,请使用pandas.DataFrame.merge()保留它们:

Final_df = Final_df.merge(Cust_LCK[['Acct#', 'Cust Group']], how='left', on=['Acct#']).drop('Cust Group_x', axis=1).rename(columns={'Cust Group_y': 'Cust Group'})
import pandas as pd


df = pd.DataFrame({'A': [5, 6, 7, 8, 9], 'B': [1, 2, 3, 4, 5]})

Final_df = pd.DataFrame({
    'Acct#'     : range(0, 5),
})

Final_df['Cust Group'] = ''

print(Final_df)

'''
   Acct# Cust Group
0      0
1      1
2      2
3      3
4      4
'''

Cust_LCK = pd.DataFrame({
    'Acct#'     : [4, 4, 3, 2, 1],
    'Cust Group': range(10, 15)
})
Cust_LCK['Group'] = ''


print(Cust_LCK)

'''
   Acct#  Cust Group Group
0      4          10
1      4          11
2      3          12
3      2          13
4      1          14
'''

Final_df = Final_df.merge(Cust_LCK[['Acct#', 'Cust Group']], how='left', on=['Acct#']).drop('Cust Group_x', axis=1).rename(columns={'Cust Group_y': 'Cust Group'})

print(Final_df)

'''
   Acct#  Cust Group
0      0         NaN
1      1        14.0
2      2        13.0
3      3        12.0
4      4        10.0
5      4        11.0
'''

如果不想在合并后删除和重命名列。在合并之前删除Final_dfCust Group

相关问题 更多 >