2014-01-14 3 views
1

Я пытаюсь создать объект панды серии с полем временной метки start:Как добавить метки времени в Pandas.Series?

a = pd.Series(index=['preceding_id', 'file', 'start'], dtype=[np.int, np.str, np.datetime64],) 

он не с

TypeError: data type not understood 

Может кто-нибудь объяснить мне, что я делаю неправильно?
Я искал даты и даты в объектах панд, но в документации только говорится, как использовать его в качестве индекса - это не то, что я хочу ...

Спасибо!

ответ

4

Серия может иметь только один тип данных. Если вы хотите хранить несколько типов в одной серии, тип Series будет object, общий тип Python.

In [12]: Series([1, 'some string', pd.to_datetime('2014-01-01')]) 
Out[12]: 
0      1 
1   some string 
2 2014-01-01 00:00:00 
dtype: object 

Это не проблема. Типы составляющих элементов сохраняются. Например, временная метка в приведенной выше серии по-прежнему является временной меткой, как мы видим, обращаясь к ней.

In [13]: Series([1, 'some string', pd.to_datetime('2014-01-01')])[2] 
Out[13]: Timestamp('2014-01-01 00:00:00', tz=None) 

Итак, в заключение не указывайте типы данных. В общем, они будут обрабатываться правильно без вашей помощи.

0

Вы уверены, что не хотите фреймворка данных?

Если да, то это будет выглядеть примерно так:

Или, если вы читаете данные из файла или что-то, вы можете легко использовать parse_dates=True для большинства панд функций ввода/вывода. Pandas на самом деле довольно фантастически относится к правильному назначению dtype.

+0

Да - в конце концов я хочу DataFrame. Я подумал о том, чтобы что-то вроде таблицы/DataFrame и впоследствии добавить строку/серию на данном событии. Поскольку мне не удалось заставить работать один ряд, я не пробовал DataFrame. – asPlankBridge

Смежные вопросы