与Groupby的第一次输入的累积值总结

发布于 2025-01-18 19:40:39 字数 639 浏览 2 评论 0 原文

我有以下数据框架:

lst=[['01012021','A',100,'NaN'],['01012021','B',120,'NaN'],['01022021','A',140,5],['01022021','B',160,12],['01032021','A',180,20],['01032021','B',200,25]]
df1=pd.DataFrame(lst,columns=['Date','FN','AuM','NNA'])

我想生成一个新列(AUM_2),该列在AUM列中获取起始值,并通过列产品累积NNA中的条目。最终结果应该看起来像下面提到的数据框架:

lst=[['01012021','A',100,'NaN','NaN'],['01012021','B',120,'NaN','NaN'],['01022021','A',140,5,105],['01022021','B',160,12,132],['01032021','A',180,20,125],['01032021','B',200,25,157]]
df2=pd.DataFrame(lst,columns=['Date','FN','AuM','NNA','AuM_2'])

您是否知道如何使用GroupBy生成Aum_2列? 谢谢您的帮助。

I have got the following dataframe:

lst=[['01012021','A',100,'NaN'],['01012021','B',120,'NaN'],['01022021','A',140,5],['01022021','B',160,12],['01032021','A',180,20],['01032021','B',200,25]]
df1=pd.DataFrame(lst,columns=['Date','FN','AuM','NNA'])

I would like to generate a new column (AuM_2) which takes the starting value in column AuM and accumulates the entries in column NNA by the column Product. The end result should look like the below mentioned dataframe:

lst=[['01012021','A',100,'NaN','NaN'],['01012021','B',120,'NaN','NaN'],['01022021','A',140,5,105],['01022021','B',160,12,132],['01032021','A',180,20,125],['01032021','B',200,25,157]]
df2=pd.DataFrame(lst,columns=['Date','FN','AuM','NNA','AuM_2'])

Do you have any idea how I could generate column AuM_2 with groupby?
Thank you for your assistance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

香草可樂 2025-01-25 19:40:39

来自 < groupby.cumsum 和每个组的第一个值, groupby.transform ::

df1['NNA'] = pd.to_numeric(df1['NNA'], errors='coerce')
df1['AuM'] = pd.to_numeric(df1['AuM'], errors='coerce')

g = df1.groupby('FN')
df1['AuM_2'] = g['NNA'].cumsum() + g['AuM'].transform('first')
print (df1)
       Date FN  AuM   NNA  AuM_2
0  01012021  A  100   NaN    NaN
1  01012021  B  120   NaN    NaN
2  01022021  A  140   5.0  105.0
3  01022021  B  160  12.0  132.0
4  01032021  A  180  20.0  125.0
5  01032021  B  200  25.0  157.0

Sum values from GroupBy.cumsum and first values per groups by GroupBy.transform:

df1['NNA'] = pd.to_numeric(df1['NNA'], errors='coerce')
df1['AuM'] = pd.to_numeric(df1['AuM'], errors='coerce')

g = df1.groupby('FN')
df1['AuM_2'] = g['NNA'].cumsum() + g['AuM'].transform('first')
print (df1)
       Date FN  AuM   NNA  AuM_2
0  01012021  A  100   NaN    NaN
1  01012021  B  120   NaN    NaN
2  01022021  A  140   5.0  105.0
3  01022021  B  160  12.0  132.0
4  01032021  A  180  20.0  125.0
5  01032021  B  200  25.0  157.0
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文