我有来自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)
但是当读取CSV文件并解析日期列时(数据争用过程中没有错误,索引采用以下格式:(没有芝加哥时区参考)
print(elecMeter_df.index)
可以向我解释有关时间戳的任何帮助/提示以及为什么会出现此错误,我们将不胜感激。 Utilimetely我试图不必使用读/写CSV过程,但如果它是唯一没有得到任何错误的方法,我会坚持使用它!
答案 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.