我有10个每小时的文件,名称分别为:file_2018-01-01_01_temp.tif``file_2018-01-01_02_temp.tif
... file_2018-01-01_10_temp.tif
。我想在熊猫中创建一个时间戳:
import glob
import pandas as pd
import os
filenames = [os.path.basename(x) for x in glob.glob('/abc/Jupyter_Works_2/1/*.tif')]
aa = pd.to_datetime([f[5:18] for f in filenames], format='%Y-%m-%d_%H').strftime('%Y%m%d%H')
pd.DatetimeIndex([pd.Timestamp(aa)])
它显示TypeError: Cannot convert input [Index(['2018010101', '2018010102'....... of type <class 'pandas.core.indexes.base.Index'> to Timestamp
。
答案 0 :(得分:1)
如果需要在熊猫中创建时间戳数组DatetimeIndex
:
d = pd.to_datetime([f[5:18] for f in filenames], format='%Y-%m-%d_%H')
print (d)
DatetimeIndex(['2018-01-01 01:00:00', '2018-01-01 02:00:00',
'2018-01-01 03:00:00'],
dtype='datetime64[ns]', freq=None)
如果需要python日期时间:
d = pd.to_datetime([f[5:18] for f in filenames], format='%Y-%m-%d_%H').to_pydatetime()
print (d)
[datetime.datetime(2018, 1, 1, 1, 0) datetime.datetime(2018, 1, 1, 2, 0)
datetime.datetime(2018, 1, 1, 3, 0)]
或Timestamps
的列表:
d=[pd.Timestamp(x) for x in pd.to_datetime([f[5:18] for f in filenames], format='%Y-%m-%d_%H')]
print (d)
[Timestamp('2018-01-01 01:00:00'), Timestamp('2018-01-01 02:00:00'),
Timestamp('2018-01-01 03:00:00')]