python - 特定年份的 Pandas 数据框总和

标签 python pandas dataframe

我刚刚开始使用 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/

相关文章:

python - 是否可以在浏览器中运行 pygame 或 pyglet ?

python - Pandas:使用正则表达式替换列中的值

python - Pandas 用 Nan 对两列求和

python - 根据最高分选择最佳值(value)

r - 按行和列重叠合并 2 个数据框

r - 在 R 中创建 data.frame 列组合的索引

python - 使用 .replace() 交换值的 Pandas 怪异行为

Python - ToggleButton - 可以取消一次回调吗?

python - 你如何在 matplotlib 中绘制一个扇区?

python - HDFStore select_as_multiple 生成器