Python 3 Pandas时间戳日期解析

时间:2018-01-11 15:10:13

标签: python-3.x pandas csv datetime timestamp

我有来自API请求的一些时间序列数据,当我正在进行一些数据争论时,会弹出以下错误。数据争论只是一些简单的Pandas系列数学(未显示)。

TypeError:不支持的操作数类型 - :' str'和' str'

但是当我将数据保存为CSV时:

elecMeter_df.to_csv('C:\\Python Scripts\\elecMeter_df.csv', sep=',', header=True, index=True, na_rep='N/A')

然后在read_CSV上解析日期:

elecMeter_dfCSV = pd.read_csv('C:\\Python Scripts\\elecMeter_df.csv', index_col='Date', parse_dates=True)

我没有得到上面描述的原始错误..为什么?我是否收到错误,因为时间戳是一个字符串,我需要转换为整数格式?

当我收到错误时,索引采用以下格式:

print(elecMeter_df.index)

enter image description here

但是当读取CSV文件并解析日期列时(数据争用过程中没有错误,索引采用以下格式:(没有芝加哥时区参考)

print(elecMeter_df.index)

enter image description here

可以向我解释有关时间戳的任何帮助/提示以及为什么会出现此错误,我们将不胜感激。 Utilimetely我试图不必使用读/写CSV过程,但如果它是唯一没有得到任何错误的方法,我会坚持使用它!

1 个答案:

答案 0 :(得分:1)

不确定您正在运行哪些代码来生成该错误。但是,时间戳可能需要从字符串转换为日期时间。尝试使用pd.to_datetime,另外您可以指定格式(下面提供了选项和含义列表)。我用于格式的示例是年 - 月 - 日小时 - 分钟。

pd.to_datetime(df['column'], format = %Y-%m-%d %H:%M)



%a  Locale’s abbreviated weekday name.
%A  Locale’s full weekday name.      
%b  Locale’s abbreviated month name.     
%B  Locale’s full month name.
%c  Locale’s appropriate date and time representation.   
%d  Day of the month as a decimal number [01,31].    
%f  Microsecond as a decimal number [0,999999], zero-padded on the left
%H  Hour (24-hour clock) as a decimal number [00,23].    
%I  Hour (12-hour clock) as a decimal number [01,12].    
%j  Day of the year as a decimal number [001,366].   
%m  Month as a decimal number [01,12].   
%M  Minute as a decimal number [00,59].      
%p  Locale’s equivalent of either AM or PM.
%S  Second as a decimal number [00,61].
%U  Week number of the year (Sunday as the first day of the week)
%w  Weekday as a decimal number [0(Sunday),6].   
%W  Week number of the year (Monday as the first day of the week)
%x  Locale’s appropriate date representation.    
%X  Locale’s appropriate time representation.    
%y  Year without century as a decimal number [00,99].    
%Y  Year with century as a decimal number.   
%z  UTC offset in the form +HHMM or -HHMM.
%Z  Time zone name (empty string if the object is naive).    
%%  A literal '%' character.