以下是一个示例代码,用于按子组计算在某个区间内的列值数量:
import pandas as pd
# 创建一个示例数据集
data = {'group': ['A', 'A', 'B', 'B', 'C', 'C'],
'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 按照group列进行分组,并计算每个组内value列在区间[2, 5]内的数量
result = df.groupby('group')['value'].apply(lambda x: ((x >= 2) & (x <= 5)).sum()).reset_index(name='count')
print(result)
输出结果如下:
group count
0 A 1
1 B 2
2 C 2
在这个示例中,我们首先创建了一个包含group和value两列的示例数据集。然后,我们使用groupby
方法按照group列进行分组,然后使用apply
方法对每个组的value列进行操作。
在apply
方法中,我们使用了一个lambda函数来计算每个组内value列在区间[2, 5]内的数量。具体来说,我们通过对每个组内的value列使用条件判断(x >= 2) & (x <= 5),得到一个包含True和False的布尔数组。然后,我们使用sum
方法来计算True的数量,即在区间[2, 5]内的值的数量。
最后,我们使用reset_index
方法将结果的索引重新设置,并将计算结果命名为count列。
上一篇:按子组汇总百分比
下一篇:按子组总结 dplyr