首页 > 解决方案 > 如何按列对数据框进行分组并获取重复行数?

问题描述

我想从我的数据框中获得每天的销售量

我试着打电话,df.groupby(['sale_date']).count()但它不计算数字。

源数据框如下所示:

sale_date, borough, building_class, ...
2003-01-01, ...
2003-01-01, ...
2003-01-02, ...

我想要一个新的数据框,如下所示:

sale_date, number_sales
2003-01-01, 2
2003-01-02, 1

标签: pandas

解决方案


您可以对数据框中的所有列进行分组,然后size获取计数。

import pandas as pd

df = pd.DataFrame([['a'], ['a'], ['a'], ['b'], ['b'], ['a']],
              columns=['A'])

df['B'] = ['b', 'b', 'b', 'c', 'a', 'c']
print(df) 
#    A  B
# 0  a  b
# 1  a  b
# 2  a  b
# 3  b  c
# 4  b  a
# 5  a  c

df = df.groupby(list(df.columns)).size().reset_index()

df.rename(columns = {0: 'number_sales'}, inplace = True)

print(df)

   A  B  number_sales
0  a  b             3
1  a  c             1
2  b  a             1
3  b  c             1

推荐阅读