gpt4 book ai didi

python - 同时在 Pandas 数据框中进行多个操作

转载 作者:行者123 更新时间:2023-12-01 09:05:20 26 4
gpt4 key购买 nike

我有一个主数据框 D1:

PRCESS_NO   VALUE   COUNT   TIME
18 25855 69 13:41:56
19 10254 8 13:42:14
20 10254 4 13:42:20
21 68522 18 13:42:29
22 68522 75 13:42:33
23 25855 21 13:42:37
24 10254 658 13:42:53
25 10254 84 13:42:59

D2 数据框:

PRCESS_NO   VALUE   COUNT   TIME
21 68522 12 14:32:25
22 68522 10 14:42:39
23 25855 54 14:38:25

我想根据下面提到的条件使用 D2 数据帧中的值更新主数据帧 D1:

  1. 添加 VALUE 和 COUNT 列的值(D1.VALUE + D2.VALUE、D1.COUNT + D2.COUNT)
  2. 使用 D2 TIME 列中的值更新 D1 TIME 列。

最终 D1 数据框:

PRCESS_NO   VALUE   COUNT   TIME
18 25855 69 13:41:56
19 10254 8 13:42:14
20 10254 4 13:42:20
21 68522 30 14:32:25
22 68522 85 14:42:39
23 25855 75 14:38:25
24 10254 658 13:42:53
25 10254 84 13:42:59

最佳答案

使用DataFrame.addcombine_first :

cols = ['VALUE','COUNT']
D1 = D1.set_index('PRCESS_NO')
D2 = D2.set_index('PRCESS_NO')

D1[cols] = D1[cols].add(D2[cols], fill_value=0).astype(int)
D1['TIME'] = D2['TIME'].combine_first(D1['TIME'])
D1 = D1.reset_index()
print (D1)
PRCESS_NO VALUE COUNT TIME
0 18 25855 69 13:41:56
1 19 10254 8 13:42:14
2 20 10254 4 13:42:20
3 21 137044 30 14:32:25
4 22 137044 85 14:42:39
5 23 51710 75 14:38:25
6 24 10254 658 13:42:53
7 25 10254 84 13:42:59

或者concat与骨料 agg 总和最后:

D1 = (pd.concat([D1,D2])
.groupby('PRCESS_NO', as_index=False)
.agg({'VALUE':'sum', 'COUNT':'sum', 'TIME':'last'}))
print (D1)
PRCESS_NO VALUE COUNT TIME
0 18 25855 69 13:41:56
1 19 10254 8 13:42:14
2 20 10254 4 13:42:20
3 21 137044 30 14:32:25
4 22 137044 85 14:42:39
5 23 51710 75 14:38:25
6 24 10254 658 13:42:53
7 25 10254 84 13:42:59

关于python - 同时在 Pandas 数据框中进行多个操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52109361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com