如何计算非 pandas 列的重复条目?

问题描述 投票:0回答:1

我有一个带列的数据框

价值
0
0
0
1
1
0
0

我想创建另一列,以便它计算一个值在批次中重复的次数

价值 频率
0 3
0 3
0 3
1 2
1 2
0 1

分组依据在这里不起作用。 你会怎么做?

python pandas dataframe
1个回答
0
投票

通过对照“值”的移动版本检查

Series.ne
并应用
Series.cumsum
来区分组。将结果传递给 [
df.groupby
] 并获取
groupby.transform
内的“大小”:

import pandas as pd

data = {'Value': {0: 0, 1: 0, 2: 0, 3: 1, 4: 1, 5: 0}}
df = pd.DataFrame(data)

df['Freq'] = df.groupby(df['Value'].ne(df['Value'].shift()).cumsum()).transform('size')

输出

   Value  Freq
0      0     3
1      0     3
2      0     3
3      1     2
4      1     2
5      0     1
© www.soinside.com 2019 - 2024. All rights reserved.