Я пытаюсь применить операцию к каждому значению в серии datetime. Я уменьшил это до печати лямбда, чтобы проиллюстрировать проблему. Это работает в другом подобном формате данных, но не на этом? Python - версия 3.5.1, версия pandas 0.17.1.pandas df.apply TypeError тип данных непонятен
Несколько дополнительных дополнений, удовлетворяющих требованию многословия.
print(dfY.info())
print(dfY)
dfY.apply(lambda rr: print(rr['predicted_time']), 1)
выход
<class 'pandas.core.frame.DataFrame'>
Int64Index: 21 entries, 0 to 20
Data columns (total 1 columns):
predicted_time 21 non-null datetime64[ns, pytz.FixedOffset(60)]
dtypes: datetime64[ns, pytz.FixedOffset(60)](1)
memory usage: 336.0 bytes
None
predicted_time
0 2005-02-01 02:40:00+01:00
1 2005-02-01 02:40:00+01:00
2 2005-02-01 02:40:00+01:00
3 2005-02-01 02:40:00+01:00
4 2005-02-01 02:43:00+01:00
5 2005-02-01 02:43:00+01:00
6 2005-02-01 02:43:00+01:00
<snip>
19 2005-02-01 02:50:00+01:00
20 2005-02-01 02:50:00+01:00
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-43-8ae0cf570812> in <module>()
1 print(dfY.info())
2 print(dfY)
----> 3 dfY.apply(lambda rr: print(rr['predicted_time']), 1)
/.../Projects/Software/TimeTillComplete/venv/lib/python3.5/site-packages/pandas/core/frame.py in apply(self, func, axis, broadcast, raw, reduce, args, **kwds)
3970 if reduce is None:
3971 reduce = True
-> 3972 return self._apply_standard(f, axis, reduce=reduce)
3973 else:
3974 return self._apply_broadcast(f, axis)
/.../Projects/Software/TimeTillComplete/venv/lib/python3.5/site-packages/pandas/core/frame.py in _apply_standard(self, func, axis, ignore_failures, reduce)
4017 # Create a dummy Series from an empty array
4018 index = self._get_axis(axis)
-> 4019 empty_arr = np.empty(len(index), dtype=values.dtype)
4020 dummy = Series(empty_arr, index=self._get_axis(axis),
4021 dtype=values.dtype)
TypeError: data type not understood
Почему вы хотите печатать в 'apply'? Цель «apply» заключается в том, что он возвращает что-то обратно. – joris
Тот факт, что вы получаете TypeError, кажется ошибкой в пандах, теперь сообщается здесь: https://github.com/pydata/pandas/issues/12244. Применяя его к колу, как говорит @Goyo, похоже, сейчас работает. – joris