【问题标题】:How to convert year, month, date to only year in python? [closed]如何在python中将年、月、日转换为只有年? [关闭]
【发布时间】:2021-02-26 14:23:43
【问题描述】:

这是我现在的输出

Year        Value
2010-12-31  50
2011-12-31  38
2012-12-31  84

这就是我想要的

Year Value
2010 50
2011 38
2012 84

如何使用 pandas 获得所需的输出?

df["Year"] = pd.to_datetime(data["date"])
df.set_index("Year").groupby(pd.Grouper(freq="Y"))["Value"].sum()

我将频率设置为年份,并且值的总和完美地按年份计算。但是,年列显示日和月。我只想要年份。

【问题讨论】:

  • Stack Overflow 无意取代现有的教程和文档。 datetime 格式化是任何有关数据类型的教程的一部分。我们希望您在此处发布之前进行这项研究。

标签: python pandas datetime pd


【解决方案1】:

试试

df['Year'] = pd.to_datetime(df['date'])
out = df.groupby(df['Year'].dt.year)['Value'].sum().reset_index()

【讨论】:

    【解决方案2】:

    您也可以使用正则表达式来做到这一点。来自documentation

    df["Year"] = df["Year"].str.findall(r"\d\d\d\d")[0]
    

    如果您的日期模式一致,这将完全按照您的意愿返回 DataFrame。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-08
      相关资源
      最近更新 更多