我想以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标量
我在做什么错?
非常感谢您的帮助!
关于,亚历山大
您可以使用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
这是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