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
解决方案
您可以对数据框中的所有列进行分组,然后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
推荐阅读
- php - 从 imagecreatefromstring() 捕获异常
- javascript - 使用 Axios 将表单数据发送到 Strapi 时出现网络错误
- c# - Helix Toolkit - 旋转 Model3DGroup 其中心
- actionscript-3 - 使用屏幕键盘时并非所有文本都显示
- css - 单页的 CSS 类选择器
- c++ - 为什么 std::sample 不是 constexpr?
- python - 减少嵌套 for 循环的执行时间
- javascript - 启动 npm start 时找不到 open(未安装 ENOGIT git)
- javascript - v-binding 内联样式不返回结果
- rxjs - rxjs 连续动态数量的 api 调用