从Python中的特定月份开始按年月填充日期列

时间:2019-11-21 09:50:48

标签: python pandas dataframe

对于以下数据框:

df = pd.DataFrame(columns=['date', 'rent_price'])
df['rent_price'] = pred.clip(0., 20.) 

       date  rent_price
    0   NaN       6.347
    1   NaN       6.472
    2   NaN       6.449
    3   NaN       6.532
    4   NaN       6.564
    5   NaN       6.555
    6   NaN       6.448

如何以date开头的year-month格式填充2019-10列? 预期的输出是这样的:

            date       rent_price
    0   2019-10       6.347
    1   2019-11       6.472
    2   2019-12       6.449
    3   2020-01       6.532
    4   2020-02       6.564
    5   2020-03       6.555
    6   2020-04       6.448

请注意,date的长度应与rent_price的长度相同。

1 个答案:

答案 0 :(得分:2)

如果需要YYYY-MM格式的字符串,请使用DataFrame中的date_rangeDatetimeIndex.strftime

df['date'] = pd.date_range('2019-10', freq='M', periods=len(df)).strftime('%Y-%m')
print (df)
      date  rent_price
0  2019-10       6.347
1  2019-11       6.472
2  2019-12       6.449
3  2020-01       6.532
4  2020-02       6.564
5  2020-03       6.555
6  2020-04       6.448

如果需要几个月的时间,请使用period_range

df['date'] = pd.period_range('2019-10', freq='M', periods=len(df))