gpt4 book ai didi

python - 计算按日期和标签分组的行中列表元素的频率

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:03 24 4
gpt4 key购买 nike

我有一个数据框 df,它看起来像这样:

ID       Date        Input
1 1-Nov A,B
1 2-NOV A
2 3-NOV A,B,C
2 4-NOV B,D

我希望我的输出计算每个输入的出现次数,如果它是连续的,否则再次将其重置为零(如果 ID 相同则只计数),而且输出应该重命名为 X.A、X.B、X.C 和 X.D 所以我的输出将如下所示:

ID      Date       Input      X.A      X.B      X.C      X.D
1 1-NOV A,B 1 1 0 0
1 2-NOV A 2 0 0 0
2 3-NOV A,B,C 1 1 1 0
2 4-NOV B,D 0 2 0 1

我如何创建输出(A、B、C 和 D)来计算输入的发生日期和 ID。

最佳答案

使用Series.str.get_dummies对于指标列,然后每组计算连续 1 - 所以使用 GroupBy.cumsum减去 GroupBy.ffill , 通过 DataFrame.add_prefix 更改列名称最后DataFrame.join转为原文:

a = df['Input'].str.get_dummies(',') == 1
b = a.groupby(df.ID).cumsum().astype(int)
df1 = (b-b.mask(a).groupby(df.ID).ffill().fillna(0).astype(int)).add_prefix('X.')

df = df.join(df1)
print (df)
ID Date Input X.A X.B X.C X.D
0 1 1-Nov A,B 1 1 0 0
1 1 2-NOV A 2 0 0 0
2 2 3-NOV A,B,C 1 1 1 0
3 2 4-NOV B,D 0 2 0 1

关于python - 计算按日期和标签分组的行中列表元素的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58935476/

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