Pandas Timestamp vs. Series取决于使用的索引?

时间:2016-01-14 18:33:15

标签: python datetime pandas types timestamp

有人可以解释为什么会发生这种情况:

In [286]: type(df.date.ix[0])
Out[286]: pandas.tslib.Timestamp

In [287]: type(df.date.ix[[0]])
Out[287]: pandas.core.series.Series

In [285]: df.date.ix[[0]]
Out[285]: 0   2015-11-03 14:57:27
          Name: date, dtype: datetime64[ns]

In [283]: df.date.ix[0]
Out[283]: Timestamp('2015-11-03 14:57:27')

我想从我的Pandas DataFrame中将该特定元素作为datetime64[ns]类型对象提取。但这完全取决于我的索引在ndarrayinteger的位置。如果它是ndarray,则会返回datetime64个对象,如果它是integer,则会返回Timestamp个对象。

1 个答案:

答案 0 :(得分:0)

当您将列表或数组传递给Series.ix时,pandas假设您要切出系列的子集,以便返回一个系列,即使它只是一个元素。如果你传入一个标量,它会假设你只想要那个索引的值。

您可以在文档中的label basedpositional based索引处查看更多示例。

关于第二个问题,如果ndarray有多个元素,会发生什么?