python-3.x - 如何对不同的熊猫列进行分组和求和
问题描述
我有一个数据框df
,我想按列Letter
和From
. 下面的例子df:
Letter Price From RT To
0 A 4 2020-06-04 11 2020-06-05
1 B 12 2020-06-04 11 2020-06-05
2 A 20 2020-06-04 11 2020-06-05
3 A 5 2020-06-04 11 2020-06-05
4 B 89 2020-06-05 11 2020-06-06
5 A 56 2020-06-05 11 2020-06-06
6 B 1 2020-06-06 11 2020-06-07
在标准 SQL 中,我会编写一个查询来实现所需的结果。
SELECT
Letter,
From,
SUM(Price),
MAX(RT)
FROM
some.table
GROUP BY Letter,From
我尝试了以下方法,但没有奏效。
df.groupby(['Letter','From']).sum(['RT','To'])
解决方案
尝试这个:
df['From'] = pd.to_datetime(df['From'])
df['To'] = pd.to_datetime(df['To'])
df = df.groupby(by=['Letter', 'From'], as_index=False).agg({
'Price': 'sum',
'RT': 'max'
})
print(df)
Letter From Price RT
0 A 2020-06-04 29 11
1 A 2020-06-05 56 11
2 B 2020-06-04 12 11
3 B 2020-06-05 89 11
4 B 2020-06-06 1 11
推荐阅读
- python - Python中的下一个质数
- modelica - 在dymola的脚本文件中修改模型的参数
- android - 在 Android 中使用 Contex 准备加载广告
- ios - SceneKit 在 Sun 上有黑色环,使用 HDRI (exr) 作为场景背景和照明环境
- c# - DataGrid WPF:中间的灰线
- c# - 升级到 Win 10 后无法在 VS 2012 中调试项目
- javascript - 尝试使用express和redis制作登录网页
- html - 在模板 Django 中的单个列上多次使用相同的表单
- nuxt.js - 插件“电子商务”没有方法“addProduct”
- sql - WHERE 条件为真但并非所有行都返回?(SQLite 数据库)