Pandas numpy matplotlib OverflowError: значение даты выходит за пределы диапазонаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pandas numpy matplotlib OverflowError: значение даты выходит за пределы диапазона

Сообщение Anonymous »

У меня есть код для сканирования каждого файла в каталоге и построения графиков каждого встреченного файла CSV. Каждый CSV-файл имеет заголовок вида

Код: Выделить всё

Timestamp, P1rms (A), P2rms (A), P3rms (A), P4rms (A), P5rms (A), Vrms (V), P1 theta, P2 theta, P3 theta, P4 theta, P5 theta

Mon Sep 30 00:00:00 2013, 128, 128, 180, 177, 192, 43, 7, 7, 8, 8, 48
Mon Sep 30 00:00:01 2013, 127, 127, 182, 178, 193, 43, 8, 8, 8, 8, 49
# ect....
Я разрабатываю вариант визуализации БПФ, и при БПФ у меня возникает ошибка переполнения. вот моя точная проблема:
Когда я запускаю свой код:

Код: Выделить всё

#!/usr/bin/env python
from pandas import *
import matplotlib.pyplot as plt
import os
import sys
import platform
import numpy.fft as np

# name of plots folder
plotfold='plots'

# System specific info
if platform.system()=='Darwin':comsep="/"
else: comsep="\\"

# How many columns should I plot?
numcol=6

if len(sys.argv)2:
ylim=1500
root = sys.argv[2]
else:
ylim=1200
root = sys.argv[1]

for subdir, dirs, files in os.walk(root):

# plot each file
for file in files:

if str(file)[-4:]=='.csv':

print 'plotting '+str(file)+'...'
# load csv as data frame
df=pandas.io.parsers.read_csv(subdir+comsep+file)
for i in range(0,len(df.Timestamp)):
df.Timestamp[i] = datetime.strptime(df.Timestamp[i], '%a %b %d %H:%M:%S %Y')

# We only want the first 6 columns
df = df.ix[:,0:numcol]

if len(sys.argv)>=2:
if sys.argv[1]=='-c' or sys.argv[1]=='-f':
plotfold='plots_Specialty'
df2 = df
df=pandas.DataFrame(df2.Timestamp)
df['Residence']=df2['P1rms (A)']+df2['P2rms (A)']
df['Specialty']=df2['P3rms (A)']+df2['P4rms (A)']
if sys.argv[1]=='-f':
df2['Residence']=np.fft(df['Residence'])
df2['Specialty']=np.fft(df['Specialty'])
df=df2
print 'Fourier Transformation Complete'
plotfold='plots_Specialty_fft'

# set up plot
plt.figure()
df.plot(df.Timestamp,alpha=0.6,linewidth=2.3) # add transparency to see overlapping colors
plt.tight_layout(pad=1.08)
plt.legend(loc='best') # add legend in non-intrusive location
plt.legend(loc=5,prop={'size':14}) #
plt.ylabel('Current')
plt.xlabel('Time')
plt.gcf().autofmt_xdate()
plt.gcf().set_size_inches(12.7,9.2)
plt.gca().set_ylim([0,ylim])

stamp = df.Timestamp[0]
day = datetime.strftime(stamp,'%a')
DOM=datetime.strftime(stamp,'%d')
month =  datetime.strftime(stamp,'%b')
year =  datetime.strftime(stamp,'%Y')

plt.title(subdir+'   '+day+' '+month+' '+DOM+' '+year)

# keep plot

# check for existing plots folder,
# create one if it doesn't exist
if plotfold not in os.listdir(subdir):
print '** adding plots directory to ',subdir
os.mkdir(subdir+comsep+plotfold)

# save in plots directory
spsubs = str(subdir).split(comsep)
filnam=''
for piece in range(len(spsubs)-4,len(spsubs)-1):
filnam+='_'+spsubs[piece]
filnam+='_'+str(file)[:-4]
saveto=subdir+comsep+plotfold+comsep+filnam
print '**** saving plot to ',saveto
plt.savefig(saveto)
plt.close()
Я получаю следующую ошибку:

Код: Выделить всё

kilojoules$ ./canaryCrawler.py -f 35ca7/
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.14.0-py2.7-macosx-10.9-x86_64.egg/pandas/io/excel.py:626: UserWarning: Installed openpyxl is not supported at this time.  Use >=1.6.1 and 

Подробнее здесь: [url]https://stackoverflow.com/questions/27348875/pandas-numpy-matplotlib-overflowerror-date-value-out-of-range[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»