简体   繁体   English

使用python重新采样数据框时出错

[英]Error when resample dataframe with python

I create a dataframe 我创建一个数据框

df5 = pd.read_csv('C:/Users/Demonstrator/Downloads/Listeequipement.csv',delimiter=';', parse_dates=[0], infer_datetime_format = True)
df5['TIMESTAMP'] = pd.to_datetime(df5['TIMESTAMP'], '%d/%m/%y %H:%M')
df5['date'] = df5['TIMESTAMP'].dt.date
df5['time'] = df5['TIMESTAMP'].dt.time
date_debut = pd.to_datetime('2015-08-01 23:10:00')
date_fin = pd.to_datetime('2015-10-01 00:00:00')
df5 = df5[(df5['TIMESTAMP'] >= date_debut) & (df5['TIMESTAMP'] < date_fin)]
df5.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 8645 entries, 145 to 8789
Data columns (total 9 columns):
TIMESTAMP                 8645 non-null datetime64[ns]
ACT_TIME_AERATEUR_1_F1    8645 non-null float64
ACT_TIME_AERATEUR_1_F3    8645 non-null float64
ACT_TIME_AERATEUR_1_F5    8645 non-null float64
ACT_TIME_AERATEUR_1_F6    8645 non-null float64
ACT_TIME_AERATEUR_1_F7    8645 non-null float64
ACT_TIME_AERATEUR_1_F8    8645 non-null float64
date                      8645 non-null object
time                      8645 non-null object
dtypes: datetime64[ns](1), float64(6), object(2)
memory usage: 675.4+ KB

I try to resample it per day like this : 我每天都这样尝试重新采样:

df5.index = pd.to_datetime(df5.index)
df5 = df5.set_index('TIMESTAMP')
df5 = df5.resample('1d').mean()

But I get a problem : 但是我有一个问题:

 KeyError Traceback (most recent call last) C:\\Users\\Demonstrator\\Anaconda3\\lib\\site-packages\\pandas\\indexes\\base.py 

in get_loc(self, key, method, tolerance) 1944 try: -> 1945 return self._engine.get_loc(key) 1946 except KeyError: 在get_loc(self,key,method,tolerance)中1944试试:-> 1945返回self._engine.get_loc(key)1946,除了KeyError:

 pandas\\index.pyx in pandas.index.IndexEngine.get_loc (pandas\\index.c:4154)() pandas\\index.pyx in pandas.index.IndexEngine.get_loc (pandas\\index.c:4018)() pandas\\hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item 

(pandas\\hashtable.c:12368)() (熊猫\\ hashtable.c:12368)()

 pandas\\hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item 

(pandas\\hashtable.c:12322)() (熊猫\\ hashtable.c:12322)()

 KeyError: 'TIMESTAMP' During handling of the above exception, another exception occurred: KeyError Traceback (most recent call last) <ipython-input-109-bf3238788c3e> in <module>() 1 df5.index = pd.to_datetime(df5.index) ----> 2 df5 = df5.set_index('TIMESTAMP') 3 df5 = df5.resample('1d').mean() C:\\Users\\Demonstrator\\Anaconda3\\lib\\site-packages\\pandas\\core\\frame.py 

in set_index(self, keys, drop, append, inplace, verify_integrity) 2835 names.append(None) 2836 else: -> 2837 level = frame[col]._values 2838 names.append(col) 2839 if drop: 在set_index中(self,keys,drop,append,inplace,verify_integrity)2835 names.append(None)2836 else:-> 2837 level = frame [col] ._ values 2838 names.append(col)2839 if drop:

 C:\\Users\\Demonstrator\\Anaconda3\\lib\\site-packages\\pandas\\core\\frame.py 

in getitem (self, key) 1995 return self._getitem_multilevel(key) 1996 else: -> 1997 return self._getitem_column(key) 1998 1999 def _getitem_column(self, key): in getitem (self,key)1995 return self._getitem_multilevel(key)1996 else:-> 1997 return self._getitem_column(key)1998 1999 def _getitem_column(self,key):

 C:\\Users\\Demonstrator\\Anaconda3\\lib\\site-packages\\pandas\\core\\frame.py 

in _getitem_column(self, key) 2002 # get column 2003 if self.columns.is_unique: -> 2004 return self._get_item_cache(key) 2005 2006 # duplicate columns & possible reduce dimensionality 在_getitem_column(self,key)2002中#如果self.columns.is_unique获取列2003:-> 2004返回self._get_item_cache(key)2005 2006#复制列并可能降低维数

 C:\\Users\\Demonstrator\\Anaconda3\\lib\\site-packages\\pandas\\core\\generic.py 

in _get_item_cache(self, item) 1348 res = cache.get(item) 1349 if res is None: -> 1350 values = self._data.get(item) 1351 res = self._box_item_values(item, values) 1352 cache[item] = res 在_get_item_cache(self,item)中1348 res = cache.get(item)如果res为None则为1349:-> 1350 values = self._data.get(item)1351 res = self._box_item_values(item,values)1352 cache [item) ] =分辨率

 C:\\Users\\Demonstrator\\Anaconda3\\lib\\site-packages\\pandas\\core\\internals.py 

in get(self, item, fastpath) 3288 3289 if not isnull(item): -> 3290 loc = self.items.get_loc(item) 3291 else: 3292 indexer = np.arange(len(self.items))[isnull(self.items)] 在get(self,item,fastpath)中3288 3289如果不是notull(item):-> 3290 loc = self.items.get_loc(item)3291 else:3292 indexer = np.arange(len(self.items))[isnull (self.items)]

 C:\\Users\\Demonstrator\\Anaconda3\\lib\\site-packages\\pandas\\indexes\\base.py 

in get_loc(self, key, method, tolerance) 1945 return self._engine.get_loc(key) 1946 except KeyError: -> 1947 return self._engine.get_loc(self._maybe_cast_indexer(key)) 1948 1949 indexer = self.get_indexer([key], method=method, tolerance=tolerance) 在get_loc(self,key,method,tolerance)中1945返回self._engine.get_loc(key)1946除了KeyError:-> 1947 return self._engine.get_loc(self._maybe_cast_indexer(key))1948 1949索引器= self.get_indexer( [键],方法=方法,公差=公差)

 pandas\\index.pyx in pandas.index.IndexEngine.get_loc (pandas\\index.c:4154)() pandas\\index.pyx in pandas.index.IndexEngine.get_loc (pandas\\index.c:4018)() pandas\\hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item 

(pandas\\hashtable.c:12368)() (熊猫\\ hashtable.c:12368)()

 pandas\\hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item 

(pandas\\hashtable.c:12322)() (熊猫\\ hashtable.c:12322)()

 KeyError: 'TIMESTAMP' 

Any idea please to help me to resolve this problem? 有什么想法可以帮助我解决这个问题吗?

Kind regards 亲切的问候

remove pd.to_datetime and try df.set_index directly: 删除pd.to_datetime并直接尝试df.set_index

*df5.index = pd.to_datetime(df5.index)* # Delete this one
df5 = df5.set_index('TIMESTAMP')
df5 = df5.resample('1d').mean()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM