在数据处理中,经常需要对数据帧(DataFrame)进行清洗和筛选。如果你想要删除数量或每组行数大于某个阈值 r
的分组中的行,可以使用以下步骤:
假设我们有一个数据帧 df
,并且我们希望删除每组行数大于 r
的分组中的行。以下是一个示例代码:
import pandas as pd
# 示例数据
data = {
'group': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'C'],
'value': [1, 2, 3, 4, 5, 6, 7, 8, 9]
}
df = pd.DataFrame(data)
# 设定阈值
r = 3
# 按 'group' 列分组,并计算每组的行数
group_counts = df.groupby('group').size()
# 找出行数大于 r 的分组
large_groups = group_counts[group_counts > r].index
# 删除这些分组中的所有行
filtered_df = df[~df['group'].isin(large_groups)]
print(filtered_df)
df
。r
。groupby
方法按 group
列分组,并计算每组的行数。r
的分组:筛选出行数大于 r
的分组。isin
方法和布尔索引删除这些分组中的所有行。通过上述步骤,你可以有效地删除每组行数大于 r
的分组中的行,从而清洗和筛选数据。
领取专属 10元无门槛券
手把手带您无忧上云