带有条件“方法”对象的“放置行”在熊猫中不可下标

时间:2019-10-07 07:23:41

标签: python pandas

我正在尝试删除几行,因为它们属于十月份。我有一栏名为“月”。

import pandas as pd
#change the file path
file_path = r'Dboard.xlsx'

df = pd.read_excel(file_path,sheet_name = 'rawdump', index_col=0)

#Created a date constant filter
sep_filter = df['Month'] == 9
aug_filter = df['Month'] == 8


#Drop Oct Rows
df1 = df.drop[df['Month'] == 10]

[错误]是

  

TypeError跟踪(最近的呼叫   最后)        11        12#下降十行   ---> 13 df1 = df.drop [mea_df ['Month'] == 10]        14        15

TypeError:“方法”对象不可下标

这是我的原始数据的一个示例(请注意有30列和超过200K的行,但我在举一个示例) 输入

Date         Campaign Month Cost  Clicks
01/10/2019    A        10    30    100
01/09/2019    A        10    80    400
01/08/2019    A        10    20    100
01/10/2019    B        10    30    100
01/09/2019    B        10    80    400
01/08/2019    B        10    20    100
01/10/2019    C        10    30    100
01/09/2019    C        10    80    400
01/08/2019    C        10    20    100

这是我想要的输出 输出

Date         Campaign Month Cost  Clicks
01/09/2019    A        10    80    400
01/08/2019    A        10    20    100
01/09/2019    B        10    80    400
01/08/2019    B        10    20    100
01/09/2019    C        10    80    400
01/08/2019    C        10    20    100

[新错误]

  

KeyError跟踪(最近的呼叫   最后)〜\ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ base.py在   get_loc(自身,键,方法,公差)2656尝试:   -> 2657返回self._engine.get_loc(key)2658,除了KeyError:

     pandas._libs.index.IndexEngine.get_loc()中的

pandas / _libs / index.pyx

     pandas._libs.index.IndexEngine.get_loc()中的

pandas / _libs / index.pyx

     

pandas / _libs / hashtable_class_helper.pxi在   pandas._libs.hashtable.PyObjectHashTable.get_item()

     

pandas / _libs / hashtable_class_helper.pxi在   pandas._libs.hashtable.PyObjectHashTable.get_item()

     

KeyError:'日期'

     

在处理上述异常期间,发生了另一个异常:

     

KeyError跟踪(最近的呼叫   最后)         6         7 #Drop Oct Rows   ----> 8 df [df ['Date']。dt.month!= 10]         9        10

     

〜\ Anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py在    getitem (自身,密钥)2925,如果self.columns.nlevels> 1:2926返回self._getitem_multilevel(key)   -> 2927 indexer = self.columns.get_loc(key)2928 if is_integer(indexer):2929 indexer = [indexer]

     

〜\ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ base.py在   get_loc(自身,键,方法,公差)2657返回   self._engine.get_loc(key)2658,除了KeyError:   -> 2659返回self._engine.get_loc(self._maybe_cast_indexer(key))2660
  索引器= self.get_indexer([键],方法=方法,公差=公差)   2661如果indexer.ndim> 1或indexer.size> 1:

     pandas._libs.index.IndexEngine.get_loc()中的

pandas / _libs / index.pyx

     pandas._libs.index.IndexEngine.get_loc()中的

pandas / _libs / index.pyx

     

pandas / _libs / hashtable_class_helper.pxi在   pandas._libs.hashtable.PyObjectHashTable.get_item()

     

pandas / _libs / hashtable_class_helper.pxi在   pandas._libs.hashtable.PyObjectHashTable.get_item()

     

KeyError:'日期'

1 个答案:

答案 0 :(得分:1)

您可以使用:

#add parse_dates for `DatetimeIndex`
df = pd.read_excel(file_path,sheet_name = 'rawdump', index_col=0, parse_dates=True)

#compare months of DatetimeIndex and filter
df1 = df[df.index.month != 10].copy()
#change format of datetimes
df1.index = df1.index.strftime('%d/%m/%Y')

#save to file
df1.to_csv(file)