gpt4 book ai didi

python - 统计列表中按 ID 分组的变化

转载 作者:行者123 更新时间:2023-11-28 22:08:05 27 4
gpt4 key购买 nike

我有一个数据框 df,它看起来像这样:输出列是要计算的

ID       input     OUTPUT
1 A,B 1
1 B,C,D 2
1 C 1
2 E,f 1
2 A,B,C 3
3 E 0

任何人都可以帮助我如何根据输入值计算输出列的变化,并且只要 ID 发生变化,即使列表的前一个元素不同,输出也将为零

第 1 行输出为 1,因为从 A 到 B 只有一个变化在 2 行中有两个变化,从 B 到 C 和 C 到 D。在第 2 行,它将是一个,因为最后一个列表的前一个元素是 D。当ID改变时我们不会与前一行进行比较,所以E到F只有1个变化

最佳答案

这是一种方法:

# get the last element from the previous row
prev_row = df.groupby('ID').input.shift().str.split(',').str[-1]

# concatenate with the next element, construct a set and
# count the amount of elements
df['OUTPUT'] = (prev_row.str.cat(df.input, sep=',')
.fillna(df.input)
.str.split(',')
.map(set)
.str.len()
.sub(1))

print(df)

ID input OUTPUT
0 1 A,B 1
1 1 B,C,D 2
2 1 C 1
3 2 E,f 1
4 2 A,B,C 3
5 3 E 0

关于python - 统计列表中按 ID 分组的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58932236/

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