我有这个DataFrame:

Names Account_1 Account_2 ID_Movement Less_1 Less_2
Peter 35 70 Movement_1 0 5
Peter 35 70 Movement_2 6 0
Peter 35 70 Movement_3 1 0
Peter 35 70 Movement_4 0 2
Jhon 55 60 Movement_5 6 0
Jhon 55 60 Movement_6 0 2
Jhon 55 60 Movement_7 0 3
Jhon 55 60 Movement_8 12 0
Jhon 55 60 Movement_9 6 0
William 34 88 Movement_10 0 8
William 34 88 Movement_11 0 9
William 34 88 Movement_12 0 5

我试图用每个人的帐户的当前值创建一个新列,代码如下:

s = (df['Account_1']).sub(df['Less_1']).groupby(df['Names']).cumsum(). df2['New_Account1'] = s.

帖子主题:Re:Колибри

Names Account 1 Account 2 ID_Movement Less_1 Less_2 New_Account1 New_Account2
Peter 35 70 Movement_1 0 11 35 59
Peter 35 70 Movement_2 6 0 29 59
Peter 35 70 Movement_3 6 0 23 59
Peter 35 70 Movement_4 0 4 23 55
Jhon 55 60 Movement_5 6 0 49 60
Jhon 55 60 Movement_6 0 14 49 46
Jhon 55 60 Movement_7 0 13 49 33
Jhon 55 60 Movement_8 12 0 37 33
Jhon 55 60 Movement_9 6 0 31 33
William 34 88 Movement_10 12 0 22 88
William 34 88 Movement_11 0 9 22 79
William 34 88 Movement_12 0 5 22 74

推荐答案

使用groupby.cumsum,减go to_numpy():

df[['New_Account1', 'New_Account2']] = (df[['Account_1', 'Account_2']]
                                        - df.groupby('Names')[['Less_1', 'Less_2']]
                                            .cumsum().to_numpy()
                                        )

输出:

      Names  Account_1  Account_2  ID_Movement  Less_1  Less_2  New_Account1  New_Account2
0     Peter         35         70   Movement_1       0       5            35            65
1     Peter         35         70   Movement_2       6       0            29            65
2     Peter         35         70   Movement_3       1       0            28            65
3     Peter         35         70   Movement_4       0       2            28            63
4      Jhon         55         60   Movement_5       6       0            49            60
5      Jhon         55         60   Movement_6       0       2            49            58
6      Jhon         55         60   Movement_7       0       3            49            55
7      Jhon         55         60   Movement_8      12       0            37            55
8      Jhon         55         60   Movement_9       6       0            31            55
9   William         34         88  Movement_10       0       8            34            80
10  William         34         88  Movement_11       0       9            34            71
11  William         34         88  Movement_12       0       5            34            66

Python相关问答推荐

写一个函数words_from_file(filename1,filename2),将文件中的文本拆分为单词,并将每行的单词写入新文件

使用最小二乘检验和假设,我如何在发现第一个反例后立即返回测试?

特定图案的不同位置的子串

根据筛选将行中的实体向右移动?

如何解决switch 条件下的PYTHON零分误差?

如何自动生成简单字段值并不允许在初始值设定项或属性设置器中设置该字段

ModuleNotFoundError:没有名为Openai.Embedding_utils';的模块

为什么三次样条线创建的形状不符合逻辑?

PANAS数据帧转换

如何在Python中创建数组的嵌套`DICRATE`?

如何使用字典清理包含一系列关键字的列

不一致的docker 形象

如何在PYTHON中使用Web抓取从POWER BI仪表板获取表

为什么`DateTime`模块在时区会有这样的行为?

属性错误:模块';pkgutil';没有属性';导入器';.你的意思是:拉链进口商?

Python Pandas Dataframe将儒略日列转换为日期列

Midy@Client.Event不起作用吗?为什么会是这样呢?

Discord.py-如何将用户建议移到另一个频道?

如何设置SciPy插值器以最准确地保存数据?

如何解决';TypeError:不支持从datetime64[ns]转换为int32';对于该功能