熊猫的``值''将pd.Timestamp转换为datetime64

时间:2020-05-06 09:57:45

标签: python pandas timestamp

我有一个熊猫数据框df,其列类型为pandas.Timestamp,我需要将其转换为列表列表(每行的列表)。当我使用df.values时,我会得到一个列表列表,但是类型转换为datetime64,这会在以后的代码中引起问题。示例:

import pandas as pd
pd.DataFrame([pd.Timestamp('2020-01-01')]).values
Out[259]: array([['2020-01-01T00:00:00.000000000']], dtype='datetime64[ns]')

如果我在每列上分别使用pandas.Series.to_list,则类型将保留:

pd.DataFrame([pd.Timestamp('2020-01-01')])[0].to_list()
Out[261]: [Timestamp('2020-01-01 00:00:00')]

但是,如果我有多个列,这会带来不便,因为我需要将其应用于每列并使用zip来获取时间戳列表列表。

是否有更直接的方法可以在不进行类型转换的情况下获取值?

1 个答案:

答案 0 :(得分:1)

您可以使用to_dict方法将东方指定为列表

df = pd.DataFrame([ { 'a' : pd.Timestamp('2020-01-01') , 'b' : pd.Timestamp('2020-01-01')}]  )

In [55]: df
Out[55]:
           a          b
0 2020-01-01 2020-01-01

In [56]: list(df.to_dict('list').values())
Out[56]: [[Timestamp('2020-01-01 00:00:00')], [Timestamp('2020-01-01 00:00:00')]]