Pandas DataFrame Date Series to List转换

时间:2018-01-06 05:42:24

标签: python pandas

我有一个名为" signal_data"的数据帧。其数据如下

Pressure   DateTime             Temp
3025       2016-04-01 00:17:00  TTY    
3019       2016-04-01 00:17:00  TTY    
3019       2016-04-01 00:17:00  TTY    
.....          
3025       2016-05-01 10:17:00  TTY    
.....

我正在尝试从DateTime列获取唯一值并转换为列表。 当我应用以下命令时,日期时间值将转换为int但不是datetime。

signal_data['DateTime'].unique().tolist()

[1459469820000000000,    
 1459516620000000000,    
 1459527420000000000,    
 ...    
 1462087020000000000]

我可以知道为什么会这样,以及如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

当你调用unique()时,它会返回一个类型为datetime的numpy数组。 Numpy datetime不是python的基本数据类型。当您将其转换为列表时,它会尝试将数据类型更改为pythonic版本。所以你得到了int。因此,请使用list(..)保持日期时间不变。即

list(df['DateTime'].unique()) 
[numpy.datetime64('2016-04-01T00:17:00.000000000')]

OR convert it to series and then tolist()

pd.Series(df['DateTime'].unique()).tolist()
[Timestamp('2016-04-01 00:17:00')]

答案 1 :(得分:0)

我不确定为什么熊猫会狡猾地施展它。但是,您可以通过执行以下操作来修复它(假设您已完成import pandas as pd):

pd.to_datetime(signal_data['DateTime'].unique()).tolist()