如何按列分组数据框并获得重复行数?

时间:2019-05-28 19:42:12

标签: pandas

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

我试图只打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

1 个答案:

答案 0 :(得分:0)

您可以对数据框中的所有列进行分组,然后使用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