如何复制 pandas 日期时间对象
how to duplicate pandas datetime object
我有一个 1X1 pandas 系列对象,其中包含一个日期时间对象。我想将此行复制到额外的 X 行(例如 10)。我已经尝试通过 .append 命令以及简单的乘法来完成它,但是当对象类型为 'datetime' 时它似乎不起作用。帮助表示赞赏。
>>> print df
0 2016-04-21
dtype: datetime64[ns]
所需的输出应该类似于(我通过相当繁琐的过程生成的 df.append([df,df,df...])
0 2016-04-21
0 2016-04-21
0 2016-04-21
0 2016-04-21
0 2016-04-21
0 2016-04-21
dtype: datetime64[ns]
您可以为此使用 numpy.tile()
函数:
In [43]: s = pd.Series(pd.to_datetime('2016-04-21'))
In [44]: s
Out[44]:
0 2016-04-21
dtype: datetime64[ns]
In [45]: np.tile(s, 10)
Out[45]:
array(['2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200'], dtype='datetime64[ns]')
In [46]: pd.DataFrame(np.tile(s, 10), columns=['date'])
Out[46]:
date
0 2016-04-21
1 2016-04-21
2 2016-04-21
3 2016-04-21
4 2016-04-21
5 2016-04-21
6 2016-04-21
7 2016-04-21
8 2016-04-21
9 2016-04-21
我有一个 1X1 pandas 系列对象,其中包含一个日期时间对象。我想将此行复制到额外的 X 行(例如 10)。我已经尝试通过 .append 命令以及简单的乘法来完成它,但是当对象类型为 'datetime' 时它似乎不起作用。帮助表示赞赏。
>>> print df
0 2016-04-21
dtype: datetime64[ns]
所需的输出应该类似于(我通过相当繁琐的过程生成的 df.append([df,df,df...])
0 2016-04-21
0 2016-04-21
0 2016-04-21
0 2016-04-21
0 2016-04-21
0 2016-04-21
dtype: datetime64[ns]
您可以为此使用 numpy.tile()
函数:
In [43]: s = pd.Series(pd.to_datetime('2016-04-21'))
In [44]: s
Out[44]:
0 2016-04-21
dtype: datetime64[ns]
In [45]: np.tile(s, 10)
Out[45]:
array(['2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200',
'2016-04-21T02:00:00.000000000+0200'], dtype='datetime64[ns]')
In [46]: pd.DataFrame(np.tile(s, 10), columns=['date'])
Out[46]:
date
0 2016-04-21
1 2016-04-21
2 2016-04-21
3 2016-04-21
4 2016-04-21
5 2016-04-21
6 2016-04-21
7 2016-04-21
8 2016-04-21
9 2016-04-21