Я не могу добавить военное время к моему datetime64 [нс].
df.head (3):
year day military_time date test
0 2018 1 5 2018-01-01 20180010005
1 2018 1 10 2018-01-01 20180010010
2 2018 1 15 2018-01-01 20180010015
df.dtypes:
day int64
military_time int64
year int64
date datetime64[ns]
test int64
dtype: object
Я анализирую данные из текстовых файлов. Мне удалось создать дату на основе год и день столбцов года.
tmp['date'] = pd.to_datetime(tmp['year'] * 1000 + tmp['day'], format='%Y%j')
Я хотел добавить новый столбец date2 путем добавления военного времени к date , используя тот же подход:
tmp['date2'] = pd.to_datetime((tmp['year'] * 1000 + tmp['day'])*10000 + tmp['military_time'], format='%Y%j%H%M')
Но go ошибка, как показано ниже.
Traceback:
TypeError Traceback (most recent call last)
<ipython-input-93-001f7c6aee03> in <module>()
14 tmp['date'] = pd.to_datetime(tmp['year'] * 1000 + tmp['day'], format='%Y%j')
15 tmp['test'] = (tmp['year'] * 1000 + tmp['day'])*10000 + tmp['military_time']
---> 16 tmp['date2'] = pd.to_datetime((tmp['year'] * 1000 + tmp['day'])*10000 + tmp['military_time'], format='%Y%j%H%M')
17 #tmp['dateTime'] = pd.to_datetime(tmp['test'],format='%Y%j%H%M')
18 #tmp['test2'] = zfill(tmp['test'],10)
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in to_datetime(arg, errors, dayfirst, yearfirst, utc, box, format, exact, unit, infer_datetime_format, origin, cache)
449 else:
450 from pandas import Series
--> 451 values = _convert_listlike(arg._values, True, format)
452 result = Series(values, index=arg.index, name=arg.name)
453 elif isinstance(arg, (ABCDataFrame, MutableMapping)):
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in _convert_listlike(arg, box, format, name, tz)
345 try:
346 result = array_strptime(arg, format, exact=exact,
--> 347 errors=errors)
348 except tslib.OutOfBoundsDatetime:
349 if errors == 'raise':
pandas\_libs\tslibs\strptime.pyx in pandas._libs.tslibs.strptime.array_strptime()
TypeError: 'int' object is unsliceable