数据帧逻辑环路

2024-06-16 18:05:32 发布

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

df0=df.filter(['ShipmentID','AccessorialCode','Cost'])

    ShipmentID   AccessorialCode     Cost
0      141687945             LNH    68.65
2      141687945             LNH     7.05
3      141687951             LNH   331.13
5      141687951             LNH    20.97
7      141687951             LNH     7.05
8      141687955             LNH    67.45
9      141687955             LNH    31.75
11     141687955             LNH    47.26
13     141687955             LNH     6.91
14     141687964             LNH   203.13
15     141687964             LNH   229.07
18     141687964             LNH     8.94
19     141687969             LNH  1912.80
22     141687969             LNH    28.29
23     141687972             LNH    65.27
24     141687972             LNH    41.28

我的目标是编写一个逻辑循环,增加重复ShipmentID的成本,然后创建一个新的数据框架,删除重复的附件

df00= df0.loc[df0['AccessorialCode'] == 'LNH']
duplicates = df00[df00.duplicated(['ShipmentID'])]
# I then need to preform an operation to eliminate the duplicates and consolidate the cost

 The desired output should look like this:


    ShipmentID    AccessorialCode  Cost
0   141687945      LNH              75.7
2   141687951      LNH              395.15  
3   141687955      LNH              153.37

Tags: theto数据目标df逻辑filter成本
2条回答

我想你需要一个小组

df0.groupby(['ShipmentID','AccessorialCode']).agg({'Cost':'sum'})
data = []
for shipment_id in set(df['ShipmentID'].values):
    row = {
        'ShipmentID':shipment_id,
        'AccessorialCode': 'LNH',
        'Cost': sum(df[df['ShipmentID'] == shipment_id]['Cost'].values),
    }
    data.append(row)

df0 = df(data)
    

相关问题 更多 >