【问题标题】:Formatting datetime in pandas columns as Quarters在熊猫列中格式化季度时间
【发布时间】:2017-05-13 03:51:06
【问题描述】:

我有一个DataFrame,其列在DateTime 索引中,代表季度,例如:

2000-03-31 00:00:00

如何将其转换为“2000q1”?

我查看了文档,但他们只说 DateTimeIndex.quarter 这里:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DatetimeIndex.quarter.html

format='%Y%q' 不起作用。选项on='%Y%q也没有

【问题讨论】:

    标签: python pandas datetime format date-formatting


    【解决方案1】:

    你可以使用to_period("Q"):

    df.index = df.index.to_period("Q")
    

    import pandas as pd
    df = pd.DataFrame({"y": [1,2,3]}, 
                      index=pd.to_datetime(["2000-03-31 00:00:00", "2000-05-31 00:00:00", "2000-08-31 00:00:00"]))
    
    df.index = df.index.to_period("Q")
    df
    #       y
    #2000Q1 1
    #2000Q2 2
    #2000Q3 3
    

    要转换普通列col,请使用dt 访问系列中的Datetime 对象:

    df = pd.DataFrame({"y": [1,2,3], 'col': pd.to_datetime(["2000-03-31 00:00:00", "2000-05-31 00:00:00", "2000-08-31 00:00:00"])})
    
    
    df['col'] = df['col'].dt.to_period("Q")
    
    df
    #      col  y
    #0  2000Q1  1
    #1  2000Q2  2
    #2  2000Q3  3
    

    【讨论】:

      猜你喜欢
      • 2021-12-19
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 2019-12-07
      • 2015-09-22
      • 1970-01-01
      相关资源
      最近更新 更多