gpt4 book ai didi

python - 数据帧中列中值序列的频率

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

我是 pandas 新手,并且有一个如下所示的数据集

id  values  exp
z1 s1 NaN
z1 s2 NaN
z1 s3 NaN
z1 s4 v
z1 s2 NaN
z1 s3 NaN
z1 s4 w
z2 s1 NaN
z2 s5 NaN
z2 s4 w
z3 s1 NaN
z3 s2 NaN
z3 s3 NaN
z3 s4 v
z4 s1 NaN
z4 s2 NaN
z4 s4 w

我想要得到像(表2)这样的输出,显示由exp列中的值终止的序列的频率

id    seq          exp
z1 s1-s2-s3-s4 v
z1 s2-s3-s4 w
z2 s1-s5-s4 w
z3 s1-s2-s3-s4 v
z4 s1-s2-s4 w

我想要的最终结果如下,但我可以使用 Table2 来实现。

seq     count
s1-s2-s3-s4 2
s2-s3-s4 1
s1-s5-s4 1
s1-s2-s4 1

寻找使用 pandas/python 解决此问题的指导。

最佳答案

您可以使用bfill用于替换 NaN 回填,然后按 idgroupby 和由 bfill 创建的 Series > 与申请 加入。最后value_counts :

print (df.exp.bfill())
0 v
1 v
2 v
3 v
4 w
5 w
6 w
7 w
8 w
9 w
10 v
11 v
12 v
13 v
14 w
15 w
16 w
Name: exp, dtype: object
df = df.groupby(['id', df.exp.bfill()])['values'].apply('-'.join).reset_index()
print (df)
id exp values
0 z1 v s1-s2-s3-s4
1 z1 w s2-s3-s4
2 z2 w s1-s5-s4
3 z3 v s1-s2-s3-s4
4 z4 w s1-s2-s4

df1 = df['values'].value_counts().reset_index()
df1.columns = ['seq','counts']
print (df1)
seq counts
0 s1-s2-s3-s4 2
1 s2-s3-s4 1
2 s1-s2-s4 1
3 s1-s5-s4 1

关于python - 数据帧中列中值序列的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42688626/

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