有人可以解释为什么会发生这种情况吗:
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 数据帧中提取该特定元素作为datetime64[ns]
类型对象。但这完全取决于我的索引是ndarray
或只是integer
的位置。如果它是一个ndarray
,它返回一个datetime64
对象,如果它是一个integer
,它返回一个Timestamp
对象。
当你将列表或数组传递给Series.ix
时,pandas 假设你想切掉序列的一个子集,所以它返回一个系列,即使它只是一个元素。如果传入标量,它将假定您只需要该索引处的值。
您可以在文档中查看基于标签和基于位置的索引的更多示例。
对于您的第二个问题,如果ndarray
有多个元素会发生什么?