2016-07-27 6 views
1

У меня есть dataframe под названием DF1:невозможно ресэмплировать свидание с питоном

df1 = pd.read_csv('C:/Users/Demonstrator/Desktop/equipement3.csv',delimiter=';', usecols = ['TIMESTAMP','ACT_TIME_AERATEUR_1_F1']) 

TIMESTAMP;ACT_TIME_AERATEUR_1_F1

2015-07-31 23:00:00;90

2015-07-31 23:10:00;0

2015-07-31 23:20:00;0

2015-07-31 23:30:00;0

2015-07-31 23:40:00;0

2015-07-31 23:50:00;0

2015-08-01 00:00:00;0

2015-08-01 00:10:00;50

2015-08-01 00:20:00;0

2015-08-01 00:30:00;0

2015-08-01 00:40:00;0

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
from matplotlib import style 
import pandas as pd 
style.use('ggplot') 


df1.index = pd.to_datetime(df1['TIMESTAMP'], format='%Y-%m-%d %H:%M:%S.%f') 
df1 = df1.drop('TIMESTAMP', axis=1) 
df1 = d1f.resample('resamplestring', how='mean') 

я получил такую ​​ошибку:

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

Не могли бы вы помочь meplease?

Спасибо

+1

что 'resamplestring'? 'df1 = d1f.resample ('resamplestring', how = 'mean')'? – EdChum

ответ

0

Вы можете добавить параметр parse_dates и index_col в read_csv, а затем использовать resample:

import pandas as pd 
import io 

temp=u"""TIMESTAMP;ACT_TIME_AERATEUR_1_F1 

2015-07-31 23:00:00;90 

2015-07-31 23:10:00;0 

2015-07-31 23:20:00;0 

2015-07-31 23:30:00;0 

2015-07-31 23:40:00;0 

2015-07-31 23:50:00;0 

2015-08-01 00:00:00;0 

2015-08-01 00:10:00;50 

2015-08-01 00:20:00;0 

2015-08-01 00:30:00;0 

2015-08-01 00:40:00;0""" 
#after testing replace io.StringIO(temp) to filename 
df1 = pd.read_csv(io.StringIO(temp), 
        sep=";", 
        usecols = ['TIMESTAMP','ACT_TIME_AERATEUR_1_F1'], 
        parse_dates=['TIMESTAMP'], 
        index_col=['TIMESTAMP']) 
print (df1) 
        ACT_TIME_AERATEUR_1_F1 
TIMESTAMP         
2015-07-31 23:00:00      90 
2015-07-31 23:10:00      0 
2015-07-31 23:20:00      0 
2015-07-31 23:30:00      0 
2015-07-31 23:40:00      0 
2015-07-31 23:50:00      0 
2015-08-01 00:00:00      0 
2015-08-01 00:10:00      50 
2015-08-01 00:20:00      0 
2015-08-01 00:30:00      0 
2015-08-01 00:40:00      0 

print (df1.index) 
DatetimeIndex(['2015-07-31 23:00:00', '2015-07-31 23:10:00', 
       '2015-07-31 23:20:00', '2015-07-31 23:30:00', 
       '2015-07-31 23:40:00', '2015-07-31 23:50:00', 
       '2015-08-01 00:00:00', '2015-08-01 00:10:00', 
       '2015-08-01 00:20:00', '2015-08-01 00:30:00', 
       '2015-08-01 00:40:00'], 
       dtype='datetime64[ns]', name='TIMESTAMP', freq=None) 

#pandas 0.18.0 and more 
print (df1.resample('30Min').mean()) 
        ACT_TIME_AERATEUR_1_F1 
TIMESTAMP         
2015-07-31 23:00:00    30.000000 
2015-07-31 23:30:00    0.000000 
2015-08-01 00:00:00    16.666667 
2015-08-01 00:30:00    0.000000 

#pandas bellow 0.18.0 
print (df1.resample('30Min', how='mean')) 
TIMESTAMP         
2015-07-31 23:00:00    30.000000 
2015-07-31 23:30:00    0.000000 
2015-08-01 00:00:00    16.666667 
2015-08-01 00:30:00    0.000000 
+0

Большое спасибо за ваш ответ. В этом случае, когда я пытаюсь выполнить df1 = pd.read_csv ('C: /Users/Demonstrator/Downloads/equipement.csv, sep = ";", usecols = [' TIMESTAMP ',' ACT_TIME_AERATEUR_1_F1 '], parse_dates = ['TIMESTAMP'], index_col = ['TIMESTAMP']) Я получил ошибку: «ValueError:« TIMESTAMP »отсутствует в списке». Как я могу это исправить? Заранее спасибо. Bests – Bio

+0

Работает для вас мой образец? Если да, то какая версия ваших панд? – jezrael

+0

Да с вашим образцом он отлично работает. Версия моей панды: «0.18.1» – Bio