假设我们有一个名为 df 的 pandas 数据帧,其中有一列名为 'group',我们想要按照 'group' 列分组,并计算另一列 'status' 中的列有多少次开关。
使用 pandas 的 groupby() 方法对 'group' 列进行分组,并使用 diff() 方法计算 'status' 列中的差异。然后使用 .ne(0) 方法得出非零值,并使用 sum() 方法计算值的总和。
代码示例:
import pandas as pd
#创建示例 DataFrame
data = {'group': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'],
'status': [0, 1, 1, 1, 0, 0, 1, 1, 0]}
df = pd.DataFrame(data)
#按组计算列中的开关次数
df.groupby('group')['status'].apply(lambda x: x.diff().ne(0).sum())
输出:
group
A 1.0
B 2.0
C 3.0
Name: status, dtype: float64
这说明在 A 组中,状态从 0 到 1 切换了一次,在 B 组中,状态从 1 到 0 切换了两次,在 C 组中,状态从 0 到 1 切换了一次,状态从 1 到 0 切换了一次,状态从 0 到 1 切换了一次。
上一篇:按组查找非零值的分数
下一篇:按组查找数量