Python 在数据帧中将日期字符串转换为unixtime
我得到的dataframe列如下:Python 在数据帧中将日期字符串转换为unixtime,python,pandas,dataframe,unix-timestamp,Python,Pandas,Dataframe,Unix Timestamp,我得到的dataframe列如下: Date 3 mins 2 hours 9-Feb 13-Feb 日期的类型是每行的字符串。将日期转换为整数unixtime的最简单方法是什么?一个想法是将列转换为日期时间和时间增量: df['dates'] = pd.to_datetime(df['Date']+'-2020', format='%d-%b-%Y', errors='coerce') times = df['Date'].replace({'(\d+)\s+mins': '00:\\1:
Date
3 mins
2 hours
9-Feb
13-Feb
日期的类型是每行的字符串。将日期转换为整数unixtime的最简单方法是什么?一个想法是将列转换为日期时间和时间增量:
df['dates'] = pd.to_datetime(df['Date']+'-2020', format='%d-%b-%Y', errors='coerce')
times = df['Date'].replace({'(\d+)\s+mins': '00:\\1:00',
'\s+hours': ':00:00'}, regex=True)
df['times'] = pd.to_timedelta(times, errors='coerce')
#remove rows if missing values in dates and times
df = df[df['Date'].notna() | df['times'].notna()]
df['all'] = df['dates'].dropna().astype(np.int64).append(df['times'].dropna().astype(np.int64))
print (df)
Date dates times all
0 3 mins NaT 00:03:00 180000000000
1 2 hours NaT 02:00:00 7200000000000
2 9-Feb 2020-02-09 NaT 1581206400000000000
3 13-Feb 2020-02-13 NaT 1581552000000000000
您的数据缺少确切的日期、月份、年份和时间信息。没有它,就不可能转换成unix时间格式。我需要什么样的字符串类型才能将其转换为unix?如果我用2020年2月2日替换2月,会怎么样?如果2020年2月9日足够转换,对我来说没问题。我需要获取时间戳中的日期,而不是秒/分钟的确切时间。Unix时间是自1970年1月1日以来经过的时间,以秒表示。例如,如果您想在2019年2月5日上午5点计算Unix时间,您将能够计算它,因为您有您想要Unix时间的确切时间(上午5点)、日期(第5点)、月份(2月)和年份(2019年)信息。但在您的情况下,您的dataframehey@jezrael中没有这些详细信息。这看起来真是太棒了,谢谢!我只有一个问题:180000000000在正常日期是1975年9月15日,星期一,我想不是在3分钟之前:D@AlexKalaidjiev-如果希望
1975
changedf['dates']=pd.to_datetime(df['Date']+'-2020',格式='%d-%b-%Y',errors='concurve')
todf['dates']=pd.to_datetime(df['Date']+'-1975',format='%d-%b-%Y',errors='concurve')
现在尝试了这两种方法,但我仍然在所有三个新行中获得NaT或NaN。最后一行也有错误:np不是defined@AlexKalaidjiev-我认为问题应该出在数据格式上,数据与问题中的数据完全相同-月的前3个字母或带有mins
或hours
字符串的数字?因为对于每个不同的格式,解决方案都会失败。