以下是一个示例代码,用于按计数分组而不丢失列:
import pandas as pd
# 创建一个示例数据集
data = {
'Name': ['John', 'Mary', 'John', 'Anna', 'John', 'Mary'],
'Age': [25, 28, 25, 30, 25, 28],
'City': ['London', 'Paris', 'London', 'New York', 'London', 'Paris']
}
df = pd.DataFrame(data)
# 按照名称和年龄计数分组
grouped = df.groupby(['Name', 'Age']).size().reset_index(name='Count')
# 将计数结果合并到原始数据集
df = df.merge(grouped, on=['Name', 'Age'], how='left')
print(df)
这段代码首先创建了一个示例数据集,并使用groupby
方法按照Name
和Age
列进行分组计数。然后,使用merge
方法将计数结果合并到原始数据集中,通过on=['Name', 'Age']
指定合并的列,通过how='left'
保留所有行。最后,打印输出合并后的数据集。
输出结果如下:
Name Age City Count
0 John 25 London 3
1 Mary 28 Paris 2
2 John 25 London 3
3 Anna 30 New York 1
4 John 25 London 3
5 Mary 28 Paris 2
注意到,计数结果列Count
被添加到了原始数据集中,并且计数结果与分组依据的列一一对应。
上一篇:按计数分组并打印到单独的行
下一篇:按计数分组,取前3个。