Pandas 'values' 将 pd.Timestamp 转换为 datetime64

df我有一个带有 type 列的pandas 数据框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来获取时间戳列表的列表。


没有这种类型转换,有没有更直接的方法来获取值?


鸿蒙传说
浏览 103回答 1
1回答

偶然的你

您可以使用 to_dict 方法将方向指定为列表df = pd.DataFrame([ { 'a' : pd.Timestamp('2020-01-01') , 'b' : pd.Timestamp('2020-01-01')}]  )In [55]: dfOut[55]:           a          b0 2020-01-01 2020-01-01In [56]: list(df.to_dict('list').values())Out[56]: [[Timestamp('2020-01-01 00:00:00')], [Timestamp('2020-01-01 00:00:00')]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python