gpt4 book ai didi

python - 如何检查连续相同的值和值的计数同时出现 pandas

转载 作者:行者123 更新时间:2023-12-04 03:58:27 28 4
gpt4 key购买 nike

在数据框 B 列中检查哪个值连续出现相同的值以及有多少次具有相同的值。

df = pd.DataFrame({'A':[1,3,4,7,8,11,1,15,20,15,16,87],
'B':[1,3,4,6,11,11,11,11,11,15,16,16]})

df_out=pd.DataFrame({'value':[11],
'values count':[5]})

最佳答案

首先通过 fir not equal and Series.shift 只得到连续的组使用累计和,通过 Series.duplicated 获取所有重复项最后一次计数 GroupBy.size :

df1 = (df[df.B.ne(df.B.shift()).cumsum().duplicated(keep=False)]
.groupby(df['B'].rename('value'))
.size()
.reset_index(name='count'))
print (df1)
value count
0 11 5

详细信息:

print (df[df.B.ne(df.B.shift()).cumsum().duplicated(keep=False)])
A B
4 8 11
5 11 11
6 1 11
7 15 11
8 20 11

或者使用Series.value_counts对于计数:

df2 = (df.loc[df.B.ne(df.B.shift()).cumsum().duplicated(keep=False), 'B']
.value_counts()
.rename_axis('value')
.reset_index(name='count'))
print (df2)
value count
0 11 5

似乎输入数据在编辑后发生了变化,所以最后 16 创建新组:

df = pd.DataFrame({'A':[1,3,4,7,8,11,1,15,20,15,16,87],
'B':[1,3,4,6,11,11,11,11,11,15,16,16]})

df1 = (df[df.B.ne(df.B.shift()).cumsum().duplicated(keep=False)]
.groupby(df['B'].rename('value'))
.size()
.reset_index(name='count'))
print (df1)
value count
0 11 5
1 16 2

关于python - 如何检查连续相同的值和值的计数同时出现 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63481447/

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