在Pandas DataFrame中使用带条件的groupby和cumcount,可以通过以下步骤实现:
import pandas as pd
data = {'Group': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
'Value': [1, 2, 3, 4, 5, 6, 7]}
df = pd.DataFrame(data)
grouped = df.groupby((df['Value'] > 3).cumsum())
这里使用了条件(df['Value'] > 3)
来判断是否满足分组条件,然后使用cumsum()
函数将条件转换为累计求和的形式,作为groupby()
函数的参数。
cumcount()
函数:df['Count'] = grouped.cumcount()
cumcount()
函数用于计算每个分组内的累计计数。
完整的代码示例:
import pandas as pd
data = {'Group': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
'Value': [1, 2, 3, 4, 5, 6, 7]}
df = pd.DataFrame(data)
grouped = df.groupby((df['Value'] > 3).cumsum())
df['Count'] = grouped.cumcount()
print(df)
输出结果:
Group Value Count
0 A 1 0
1 A 2 0
2 B 3 0
3 B 4 0
4 B 5 1
5 C 6 0
6 C 7 1
这个例子中,我们根据Value
列的值是否大于3进行分组,然后对每个分组应用cumcount()
函数计算累计计数,并将结果存储在新的Count
列中。
领取专属 10元无门槛券
手把手带您无忧上云