python - datetime64[ns] 到 Pandas 中的时间戳字符串

标签 python pandas

我有一个系列:

>>> ser = pd.Series(['2008-08-05 18:36:48','2008-08-01 14:45:37','2008-09-08 14:03:52'],index=[0,1,2],dtype='datetime64[ns]')

>>> ser

0   2008-08-05 18:36:48

1   2008-08-01 14:45:37

2   2008-09-08 14:03:52

dtype: datetime64[ns]

还有 ser[0] 和 ser[0:1]

>>> ser[0]
Timestamp('2008-08-05 18:36:48')
>>>ser[0:2]
0   2008-08-05 18:36:48
1   2008-08-01 14:45:37
dtype: datetime64[ns]

ser 的值为:

ser.values
array(['2008-08-06T02:36:48.000000000+0800',
   '2008-08-01T22:45:37.000000000+0800',
   '2008-09-08T22:03:52.000000000+0800'], dtype='datetime64[ns]')

问题是,例如,时间是 '2008-08-06T02:36:48.000000000+0800' 而不是 '2008-08-05 18:36: 48'

我需要将 ser 的值导入数据库,如下所示: ['2008-08-05 18:36:48','2008-08-01 14:45:37','2008-09-08 14:03:52']

如何获取时间戳列表,而不是“2008-08-06T02:36:48.000000000+0800”?

最佳答案

一种方法是构造 pd.DatetimeIndex 并调用 to_native_types()

pd.DatetimeIndex(ser).to_native_types()

array(['2008-08-05 18:36:48', '2008-08-01 14:45:37', '2008-09-08 14:03:52'], dtype=object)

或者只是对 numpy 数组进行操作(将分辨率设置为 s 而不是 ns,然后转换为字符串):

ser.values.astype('<M8[s]').astype(str)

array(['2008-08-05T18:36:48Z', '2008-08-01T14:45:37Z', '2008-09-08T14:03:52Z'], 
      dtype='<U38')    

关于python - datetime64[ns] 到 Pandas 中的时间戳字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31613018/

相关文章:

python - 尝试安装 psycopg2/psycopg2-binary 时出现 Windows 错误 1120

python - Django - Heroku 中未获取静态文件

python - 在 Python/Micropython 中将 ADS1x15 库与 ADS1114 结合使用

python - 如何在 Python 中访问索引、键和值

python - pandas read_csv 列 dtype 设置为十进制但转换为字符串

来自多列的 python 日期和日期时间

Python while (bool) :

python - 未使用 Python/Basemap 在图形上绘制的线条

python - 如何将 pytables 表读入 pandas 数据帧

python - 如何更改组中的原始 DataFrame?