여기에 datetime64 [ns] 열이있는 팬더 데이터 프레임이 있습니다.DataFrame의 datetime64 시리즈 또는 열에 pandas.Timedelta 추가
In [69]: dataframe_with_datetime
some_other_column ts
0 0 2017-09-22 23:29:11
In [70]: dataframe_with_datetime.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1 entries, 0 to 0
Data columns (total 2 columns):
some_other_column 1 non-null int64
ts 1 non-null datetime64[ns]
dtypes: datetime64[ns](1), int64(1)
memory usage: 96.0 bytes
In [72]: import datetime
In [73]: offset = datetime.timedelta(hours=5, minutes=30)
Out[74]: datetime.timedelta(0, 19800)
In [75]: delta = pd.Timedelta(offset)
Out[76]: Timedelta('0 days 05:30:00')
In [77]: dataframe_with_datetime['ts']
0 2017-09-22 23:29:11
Name: ts, dtype: datetime64[ns]
을 감안할 때 이러한 팬더 dataframe, 나는 추가 /이 팬더 열에서 시간 델타을 뺄 필요하지만, 나는 예외 다음 얻을 : 각에 timedelta 빼기를 수행 할 수 있습니다
In [78]: dataframe_with_datetime['ts'] - delta
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-78-6d6985a3c867> in <module>()
----> 1 dts['ts'] - td
/usr/local/lib/python3.5/dist-packages/pandas/core/ops.py in wrapper(left, right, name, na_op)
694 left, right = _align_method_SERIES(left, right)
695
--> 696 converted = _Op.get_op(left, right, name, na_op)
697
698 left, right = converted.left, converted.right
/usr/local/lib/python3.5/dist-packages/pandas/core/ops.py in get_op(cls, left, right, name, na_op)
328 return _Op(left, right, name, na_op)
329 else:
--> 330 return _TimeOp(left, right, name, na_op)
331
332
/usr/local/lib/python3.5/dist-packages/pandas/core/ops.py in __init__(self, left, right, name, na_op)
341 super(_TimeOp, self).__init__(left, right, name, na_op)
342
--> 343 lvalues = self._convert_to_array(left, name=name)
344 rvalues = self._convert_to_array(right, name=name, other=lvalues)
345
/usr/local/lib/python3.5/dist-packages/pandas/core/ops.py in _convert_to_array(self, values, name, other)
452 supplied_dtype = values.dtype
453 inferred_type = supplied_dtype or lib.infer_dtype(values)
--> 454 if (inferred_type in ('datetime64', 'datetime', 'date', 'time') or
455 is_datetimetz(inferred_type)):
456 # if we have a other of timedelta, but use pd.NaT here we
TypeError: data type "datetime" not understood
흠, 나를 위해'dataframe_with_datetime [ 'ts'] - 델타'멋지다, 아마도 더 오래된 버전의 팬더, numpy? – jezrael
판다 (pandas)와 파이썬 (python) 버전을 지정하면 유용한 게시물이됩니다. –
@ cᴏʟᴅsᴘᴇᴇᴅ - 좋은 생각, 끝났습니다. 감사합니다 – jezrael