如何将熊猫列转换为日期时间数据类型?

时间:2019-10-25 05:52:43

标签: pandas dataframe datetime timestamp

我有一个数据框,其中仅包含数据类型为“对象”的时间戳。我想将整个数据框转换为日期时间数据类型。另外,我想将所有列都转换为linux epoch nano秒。因此,我可以在pca中使用此数据帧。 enter image description here

1 个答案:

答案 0 :(得分:1)

示例

rng = pd.date_range('2017-04-03', periods=3).astype(str)
time_df = pd.DataFrame({'s': rng, 'a': rng})  
print (time_df)
           s          a
0 2017-04-03 2017-04-03
1 2017-04-04 2017-04-04
2 2017-04-05 2017-04-05

使用DataFrame.apply转换为日期时间,然后转换为numpy数组,然后转换为整数,从而转换为本机时代格式:

f = lambda x: pd.to_datetime(x, infer_datetime_format=True).values.astype(np.int64)
#pandas 0.24+
#f = lambda x: pd.to_datetime(x, infer_datetime_format=True).to_numpy().astype(np.int64)
time_df = time_df.apply(f) 
print (time_df)
                     s                    a
0  1491177600000000000  1491177600000000000
1  1491264000000000000  1491264000000000000
2  1491350400000000000  1491350400000000000