在获取其他上下文的同时使用pandas.DataFrame.values?

时间:2018-10-14 06:37:59

标签: python pandas

我有一个类似的数据框

               rectime
0  2018-10-13 00:15:00
1  2018-10-13 00:30:00
2  2018-10-13 00:45:00
3  2018-10-13 01:00:00

'rectime'的格式为datetime。我想通过使用将其转换为列表

pandas.DataFrame.values

返回的内容是这样的

[['2018-10-13T00:15:00.000000000']
 ['2018-10-13T00:30:00.000000000']
 ['2018-10-13T00:45:00.000000000']
 ['2018-10-13T01:00:00.000000000']]

有人可以告诉我为什么有区别吗?以及如何在'rectime'中获得具有相同上下文的列表?

1 个答案:

答案 0 :(得分:2)

使用dt.strftime()

df.rectime.dt.strftime("%Y-%m-%d %H:%M:%S").values

array(['2018-10-13 00:15:00', '2018-10-13 00:30:00', '2018-10-13 00:45:00',
       '2018-10-13 01:00:00'], dtype=object)

说明:Pandas在内部以ISO-8601格式存储datetime对象,但是在与打印输出进行交互时,它以更易读的格式呈现日期字符串。
当您使用.values从熊猫转换成列表时,将失去漂亮的打印功能,并获得完整的8601字符串。
您可以使用dt.strftime方法来确定您想要的字符串表示形式的外观,然后使用.values 然后将其移动到列表中。

数据:

df = pd.DataFrame({'rectime': {
    0: pd.Timestamp('2018-10-13 00:15:00'),
    1: pd.Timestamp('2018-10-13 00:30:00'),
    2: pd.Timestamp('2018-10-13 00:45:00'),
    3: pd.Timestamp('2018-10-13 01:00:00')}})