Python pandas数据帧转换为unixtime [duplicate]

问题描述 投票:0回答:2

我想以Unix时间戳转换格式为yyyy = year,mm = month,dd = day,hh = hour,nn = minute的日期格式。我尝试过:

df_out['unixtime'] = datetime(df_out['yyyymmddhhmm'].dt.year.to_numpy(),df_out['yyyymmddhhmm'].dt.month.to_numpy(),df_out['yyyymmddhhmm'].dt.day.to_numpy(),df_out['yyyymmddhhmm'].dt.hour.to_numpy(),df_out['yyyymmddhhmm'].dt.minute.to_numpy()).timestamp()

但是我收到了错误消息:

TypeError:仅大小为1的数组可以转换为Python标量

我在做什么错?

非常感谢您的帮助!

关于,亚历山大

python pandas dataframe unix-timestamp
2个回答
0
投票

您可以使用pandas库为日期创建一列

 df_out['date_format'] = pd.to_datetime(df_out['date_time_column'], format='%Y%m%d%H%M')

然后您可以创建新的列,该列将由年,月,日,时信息组成:

pd.DatetimeIndex(df_out['date_format']).year 
pd.DatetimeIndex(df_out['date_format']).month 
pd.DatetimeIndex(df_out['date_format']).day 
pd.DatetimeIndex(df_out['date_format']).hour

0
投票

这是officially推荐的方式:

df = pd.DataFrame({'yyyymmddhhmm': ['20201108121314', '20201109121314']})
df.yyyymmddhhmm = pd.to_datetime(df.yyyymmddhhmm)

df['unixtime'] = (df.yyyymmddhhmm - pd.Timestamp('1970-01-01')) // pd.Timedelta('1s')

结果:

         yyyymmddhhmm    unixtime
0 2020-11-08 12:13:14  1604837594
1 2020-11-09 12:13:14  1604923994
© www.soinside.com 2019 - 2024. All rights reserved.