在pandas中不循环地将日期时间序列转换为字符串

2024-04-19 23:40:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我将日期时间序列作为Pandas数据帧中的一列-df['timeStamp']。我想把这个列中的每个datetime对象转换成一个字符串。有几个python函数可以将单个datetime对象转换为字符串,如下所示:

str(datetime)
datetime.format(datetime) 
datetime.strftime('%m%d%Y')

但是为了得到我想要的结果,我必须循环整个列并将每个对象分别转换为字符串。我想避免的事情。我想知道是否有Pandas/Python函数可以一次性完成。与to_datetime函数相反的东西(可以一次性将str转换为datetime,而不需要循环)。在


Tags: to数据对象函数字符串formatpandasdf
1条回答
网友
1楼 · 发布于 2024-04-19 23:40:37

你有一些选择。首先可以执行astype(str)

In [1]: s = pd.Series(pd.date_range('2015-01-01 09:00:00', periods=3))

In [2]: s
Out[2]:
0   2015-01-01 09:00:00
1   2015-01-02 09:00:00
2   2015-01-03 09:00:00
dtype: datetime64[ns]

In [3]: s.astype(str)
Out[3]:
0    2015-01-01T10:00:00.000000000+0100
1    2015-01-02T10:00:00.000000000+0100
2    2015-01-03T10:00:00.000000000+0100
dtype: object

但这将为您提供字符串格式的日期时间的标准numpy表示。在

另一个可以控制格式的选项是在apply中使用strftime方法(这实际上相当于编写一个循环,但时间更短):

^{pr2}$

最后,在即将发布的0.17.0版本中(该功能目前处于开发版本中),您还可以执行以下操作:

In [5]: s.dt.strftime('%d/%m/%Y')
Out[5]:
0    01/01/2015
1    02/01/2015
2    03/01/2015
dtype: object

相关问题 更多 >