Drop Row с условным объектом 'method' не является подписанным в Pandas - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь удалить несколько 1000 строк, потому что они принадлежат октябрьскому месяцу. У меня есть столбец с именем «Месяц».

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 #Drop Oct Rows ---> 13 df1 = df.drop [mea_df ['Месяц'] == 10] 14 15

TypeError: объект 'method' не может быть подписан

Вот пример моих необработанных данных (обратите внимание, что 30 столбцов и болеечем 200 тыс. строк, но я привожу пример) Вход

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

[NEWОШИБКА]

KeyError Traceback (последний вызов был последним) ~ \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ base.py в get_loc (собственный, ключ, метод, допуск) 2656try: -> 2657 возвращает self._engine.get_loc (key) 2658 за исключением KeyError:

pandas / _libs / index.pyx в pandas._libs.index.IndexEngine.get_loc ()

pandas/_libs/index.pyx в pandas._libs.index.IndexEngine.get_loc ()

pandas / _libs / hashtable_class_helper.pxi в pandas._libs.hashtable.PyObjectHashTable.get_item (1031) (10) * 1031/ _libs / чashtable_class_helper.pxi в pandas._libs.hashtable.PyObjectHashTable.get_item ()

KeyError: 'Date'

Во время обработки вышеуказанного исключения произошло еще одно исключение:

KeyErrorTraceback (последний вызов был последним) в 6 7 #Drop Oct Rows ----> 8 df [df ['Date']. Dt.month! = 10] 9 10

~ \ Anaconda3 \ lib \site-packages \ pandas \ core \ frame.py в getitem (self, key) 2925, если self.columns.nlevels> 1: 2926, вернуть self._getitem_multilevel (key) -> 2927 indexer = self.columns.get_loc (ключ) 2928, если is_integer (индексатор): 2929 indexer = [indexer]

~ \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ base.py в get_loc (self, key,метод, допуск) 2657 возвращает self._engine.get_loc (ключ) 2658 кроме KeyError: -> 2659 возвращает self._engine.get_loc (self._maybe_cast_indexer (ключ)) 2660
indexer = self.get_indexer ([ключ], метод= метод, допуск = допуск) 2661, если indexer.ndim> 1 или indexer.size> 1:

pandas / _libs / index.pyx в pandas._libs.index.IndexEngine.get_loc ()

pandas / _libs / index.pyx в pandas._libs.index.IndexEngine.get_loc ()

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: 'Date'

1 Ответ

1 голос
/ 08 октября 2019

Вы можете использовать:

#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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...