gpt4 book ai didi

Python:Pandas 数据框获取周数所属的年份而不是日期的年份

转载 作者:行者123 更新时间:2023-12-04 03:31:40 25 4
gpt4 key购买 nike

我有一个 csv 文件:https://data.rivm.nl/covid-19/COVID-19_aantallen_gemeente_per_dag.csv

我想用它来深入了解每周的电晕死亡人数。

  df = pd.read_csv("covid.csv", error_bad_lines=False, sep=";")
df = df.loc[df['Deceased'] > 0]
df["Date_of_publication"] = pd.to_datetime(df["Date_of_publication"])
df["Week"] = df["Date_of_publication"].dt.isocalendar().week
df["Year"] = df["Date_of_publication"].dt.year
df = df[["Week", "Year", "Municipality_name", "Deceased"]]
df = df.groupby(by=["Week", "Year", "Municipality_name"]).agg({"Deceased" : "sum"})
df = df.sort_values(by=["Year", "Week"])
print(df)

除了 2021 年的前 3 天,一切似乎都运行良好。2021 年的前 3 天是 2020 年最后一周 (53) 的一部分:http://week-number.net/calendar-with-week-numbers-2021.html .

当我打印数据框时,结果如下:

 53   2021 Winterswijk               1
Woudenberg 1
Zaanstad 1
Zeist 2
Zutphen 1

所以基本上我正在寻找的是这一行返回星期几而不是日期年份的方法:

  df["Year"] = df["Date_of_publication"].dt.year

最佳答案

您可以使用 dt.isocalendar().year 设置 df["Year"]:

df["Year"] = df["Date_of_publication"].dt.isocalendar().year

您将获得 2021 年 1 月 1 日的 2020 年,但 2021 年 1 月 4 日的日期将返回 2021 年。

这与您使用 dt.isocalendar().week 设置 df["Week"] 的方式类似。由于它们都基于 dt.isocalendar() 返回的相同元组 (year, week, day),因此它们将始终保持同步。

演示

date_s = pd.Series(pd.date_range(start='2021-01-01', periods=5, freq='1D'))

date_s

0
0 2021-01-01
1 2021-01-02
2 2021-01-03
3 2021-01-04
4 2021-01-05

date_s.dt.isocalendar()

year week day
0 2020 53 5
1 2020 53 6
2 2020 53 7
3 2021 1 1
4 2021 1 2

关于Python:Pandas 数据框获取周数所属的年份而不是日期的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66684310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com