如何从列而不是Timestamp获取datetime类型?

时间:2017-01-11 10:02:05

标签: python pandas dataframe

我有datetime列:

>>> data_df.revoting_date
Out[9]: 
0    2017-01-09 08:40:50.241
1    2017-01-09 08:40:50.241
2    2017-01-09 08:40:50.241
3    2017-01-09 08:40:50.241
4    2017-01-09 08:40:50.241
5    2017-01-09 08:40:50.241
6    2017-01-09 08:40:50.241
7    2017-01-09 08:40:50.241
8    2017-01-09 08:40:50.241
9    2017-01-09 08:40:50.241
10   2017-01-09 08:40:50.241
11   2017-01-09 08:40:50.241
12   2017-01-09 08:40:50.241
13   2017-01-09 08:40:50.241
14   2017-01-09 08:40:50.241
Name: revoting_date, dtype: datetime64[ns]

但是当我尝试获得一个单独的行时,我得到Timestamp结果:

data_df.revoting_date.iloc[0]
Out[11]: Timestamp('2017-01-09 08:40:50.241000')

如何以datetime的形式获得结果?

2 个答案:

答案 0 :(得分:2)

我认为你需要:

a = data_df.revoting_date.iloc[0].to_pydatetime()
print (a)
2017-01-09 08:40:50.241000

print (type(a))
<class 'datetime.datetime'>

如果需要转换列使用to_pydatetime中的所有值,但输出为numpy array

data_df.revoting_date.dt.to_pydatetime()

答案 1 :(得分:1)

带有列表的切片

data_df.revoting_date.iloc[[0]]

0
0    2017-01-09 08:40:50.241
Name: revoting_date, dtype: object

使用.iloc[0]时,它将抓取位于该位置的低维对象。另一方面,.iloc[[0]]在列表中的所有位置抓取低维对象集。此集将维度从标量时间戳返回到日期时间列。