Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据帧中将日期字符串转换为unixtime_Python_Pandas_Dataframe_Unix Timestamp - Fatal编程技术网

Python 在数据帧中将日期字符串转换为unixtime

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:

我得到的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: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
change
df['dates']=pd.to_datetime(df['Date']+'-2020',格式='%d-%b-%Y',errors='concurve')
to
df['dates']=pd.to_datetime(df['Date']+'-1975',format='%d-%b-%Y',errors='concurve')
现在尝试了这两种方法,但我仍然在所有三个新行中获得NaT或NaN。最后一行也有错误:np不是defined@AlexKalaidjiev-我认为问题应该出在数据格式上,数据与问题中的数据完全相同-月的前3个字母或带有
mins
hours
字符串的数字?因为对于每个不同的格式,解决方案都会失败。