我刚刚开始使用 Pandas 进行分析工作。
我在 Pandas 中有一个超过 200 万行的数据框,假设它称为 DF。 我需要创建一个变量,显示名为“总记录”的列的总和,但按年份将其分开,所以可以说,一个变量代表 2017 年,另一个变量代表 2018 年,另一个变量代表 2019 年。 问题是,我的 DATE 列的格式如下:1/20/2018 有没有类似SQL语法的东西:
Select Sum("Total Records")
From DF
Where date like '%2018';
?
我尝试使用 df.query('date == 2018')['Total Records'].sum(),但它给了我一个语法错误。
假设 DF 看起来像这样:
Date | Total Records
1-20-2019 | 100
3-12-2018 | 50
5-14-2019 | 100
3-10-2018 | 20
我希望它输出这样的变量
TotalRecords2018 = 70;
TotalRecords2019 = 200;
最佳答案
方法一:推荐的方法是将“日期”列的类型转换为日期时间。
类似
df['日期'] = df['日期'].astype('datetime64')
然后分隔年份并应用聚合“总和”
或者
方法 2:分割字符串
如果要保留数据类型,请根据“-”分割字符串。
df['日', '月', '年'] = df.Date.split("-",expand=True)
使用新列“year”进行分组和求和。
df.groupby('年份")['总记录'].sum()
关于python - 特定年份的 Pandas 数据框总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59164569/