我有一个名为" 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]
我可以知道为什么会这样,以及如何解决这个问题?
答案 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()