【问题标题】:pandas period_range - gaining access to thepandas period_range - 访问
【发布时间】:2019-09-28 16:05:57
【问题描述】:

pd.period_range(start='2017-01-01', end='2017-01-01', freq='Q') 给了我以下信息: PeriodIndex(['2017Q1'], dtype='period[Q-DEC]', freq='Q-DEC')

我想访问“2017Q1”以将其放入数据框中的不同列中。

我有一个包含日期的日期列,例如 2017 年 1 月 1 日。我还有其他列,我想在其中放置按期间范围计算的字符串。这似乎是一种用财政季度更新列的有效方法。我似乎无法访问它。它是不可下标的,即使我将它分配给一个变量,我也无法得到它。只是想知道我错过了什么。

【问题讨论】:

    标签: python pandas range period


    【解决方案1】:

    pandas.PeriodIndex:

    • 你快到了。它只需要分配给一个列
    import numpy as np
    from datetime import timedelta, datetime
    import pandas as pd
    
    
    # list of dates - test data
    first_date = datetime(2017, 1, 1)
    last_date = datetime(2019, 9, 20)
    x = 4
    list_of_dates = [date for date in np.arange(first_date, last_date, timedelta(days=x)).astype(datetime)]
    
    
    # create the dataframe
    df = pd.DataFrame({'dates': list_of_dates})
    
         dates
    2017-01-01
    2017-01-05
    2017-01-09
    2017-01-13
    2017-01-17
    
    df['Quarters'] = pd.PeriodIndex(df.dates, freq='Q-DEC')
    

    输出:

    print(df.head())
    
         dates Quarters
    2017-01-01   2017Q1
    2017-01-05   2017Q1
    2017-01-09   2017Q1
    2017-01-13   2017Q1
    2017-01-17   2017Q1
    
    print(df.tail())
    
         dates Quarters
    2019-08-31   2019Q3
    2019-09-04   2019Q3
    2019-09-08   2019Q3
    2019-09-12   2019Q3
    2019-09-16   2019Q3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 2016-08-07
      • 2017-09-25
      • 2018-01-01
      • 2014-06-22
      • 2019-01-26
      相关资源
      最近更新 更多