python - 在不循环的情况下将日期时间系列转换为 Pandas 中的字符串

标签 python string datetime pandas

我有一个日期时间系列作为 Pandas 数据框中的一列 - df['timeStamp']。我想将此列中的每个日期时间对象转换为字符串。有几个 python 函数可以将单个日期时间对象转换为字符串,例如:

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

但要获得我想要的结果,我必须遍历整个列并将每个对象单独转换为字符串。我试图避免的事情。我想知道是否有任何 Pandas/Python 函数可以一次性完成。与 to_datetime 函数相反的东西(一次性将 str 转换为 datetime 而无需循环)。

最佳答案

您在这里有一些选择。首先你可以做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 表示。

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

In [4]: s.apply(lambda x: x.strftime('%m%d%Y'))
Out[4]:
0    01012015
1    01022015
2    01032015
dtype: object

最后,在即将发布的 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

关于python - 在不循环的情况下将日期时间系列转换为 Pandas 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32091363/

相关文章:

python - 如何让 Python、QT 和 Webkit 在 headless (headless)服务器上工作?

python - 将字符串转换为嵌套结构,如列表

c++ - 从文本文件打印字符串和整数 (C++)

excel - 在 Excel 的 Power Query 中将日期转换为序列号

python - Python中的string方法和str方法有什么区别?

python - 我应该如何在 Python 中捕获 `with open(filename)` 引发的异常?

java - 为什么Java中的String.hashCode()会有很多冲突?

javascript - 使用 javascript 添加第二个日期时间

没有 ":"的时区的 java 日期模式

python - 提高 python 数组操作的性能