熊猫向DataFrame添加n个新日期行

时间:2018-07-17 03:17:37

标签: python pandas

我想在数据框末尾添加几个月。

使用日期将另外六个(或12个月)的数据附加到此类数据框中的最佳方法是什么?

0    2013-07-31
1    2013-08-31
2    2013-09-30
3    2013-10-31
4    2013-11-30

谢谢

2 个答案:

答案 0 :(得分:1)

编辑:我想您可能想要pd.date_range

df = pd.DataFrame({'date':['2010-01-31', '2010-02-28'], 'x':[1,2]})
df['date'] = pd.to_datetime(df.date)
    date        x
0   2010-01-31  1
1   2010-02-28  2

然后

df.append(pd.DataFrame({'date': pd.date_range(start=df.date.iloc[-1], periods=6, freq='M', closed='right')}))

    date        x
0   2010-01-31  1.0
1   2010-02-28  2.0
0   2010-03-31  NaN
1   2010-04-30  NaN
2   2010-05-31  NaN
3   2010-06-30  NaN
4   2010-07-31  NaN

答案 1 :(得分:0)

研究了append和其他循环类型的选项后,我创建了这个:

Result of first two input:
current gradients is: IndexedSlicesValue(values=array([[0.25],
       [0.25]], dtype=float32), indices=array([6, 3]), dense_shape=array([15,  1], dtype=int32))
current gradients is: IndexedSlicesValue(values=array([[0.25],
       [0.25]], dtype=float32), indices=array([10,  9]), dense_shape=array([15,  1], dtype=int32))
current gradients is: IndexedSlicesValue(values=array([[0.25],
       [0.25]], dtype=float32), indices=array([13, 12]), dense_shape=array([15,  1], dtype=int32))
current gradients is: [0.5]

这是我得到的dt。它给出了适当的结束月份天数。

length = df.shape [ 0 ]
add = 12

start = df [ 'month' ].iloc [ 0 ]
count = int ( length + add )

dt = pd.date_range ( start, periods = count, freq = 'M' )

现在我只需要更改DatetimeIndex。

我希望这是好的代码。干杯。