我想知道一个dataframe里不同地区不同分区,不同编号的重复次数,不需要知道谁重复了,只需要知道有多少个重复了,以及达到不同重复次数的有几个,请给出完整代码
时间: 2024-09-16 17:00:43 浏览: 31
在Python的pandas库中,你可以使用`groupby`和`size`函数来计算DataFrame中每个地区、分区和编号的重复次数,然后使用`value_counts`统计每种重复次数出现的次数。以下是一个完整的示例代码:
```python
import pandas as pd
# 假设你有一个名为df的DataFrame,它有三列 'region', 'partition', 和 'identifier'
# region, partition, identifier 分别代表地区、分区和编号
df = pd.DataFrame({
'region': ['A', 'A', 'B', 'B', 'A', 'A', 'B', 'B'],
'partition': [1, 2, 1, 2, 1, 3, 1, 2],
'identifier': [101, 102, 201, 202, 101, 103, 201, 204]
})
# 使用 groupby 进行分组并计算每个组的数量(即重复次数)
counts = df.groupby(['region', 'partition', 'identifier']).size().reset_index(name='count')
# 计算重复次数的频数分布
frequency_distribution = counts['count'].value_counts()
print("重复次数及其出现的次数:")
print(frequency_distribution)
# 结果展示会类似:
# count
# 1 4
# 2 4
# 3 1
```
在这个例子中,我们首先对数据进行了分组,然后计算每个分组内的记录数量。`value_counts()`部分则返回了一个Series,其中键是重复次数,值是对应次数。
如果你需要更详细的输出,比如只看达到多少次及以上重复的情况,可以添加条件筛选:
```python
high_frequency = frequency_distribution[frequency_distribution >= 2]
print("达到两次及以上的重复次数及其出现的次数:")
print(high_frequency)
```
阅读全文