Ошибка типа, объект 'method' не может быть подписан во время итерации - PullRequest
1 голос
/ 30 октября 2019

Я работаю с огромным фреймом данных:

reader = pd.read_csv("D:/...path.../test.csv", names=["id_easy","ordinal", "latitude", "longitude","epoch",'weekday'], 
                 parse_dates=['epoch'], chunksize=n_rows, error_bad_lines=False)

day_names = (('0:00', '1:00'),('1:00', '2:00'),('2:00', '3:00'),('3:00', '4:00'),('4:00', '5:00'),('5:00', '6:00'),
             ('6:00', '7:00'),('7:00', '8:00'),('8:00', '9:00'),('9:00', '10:00'),('10:00', '11:00'),('11:00', '12:00'),
             ('12:00', '13:00'),('13:00', '14:00'),('14:00', '15:00'),('15:00', '16:00'),('16:00', '17:00'),('17:00', '18:00'),
             ('18:00', '19:00'),('19:00', '20:00'),('20:00', '21:00'),('21:00', '22:00'),('22:00', '23:00'),('23:00', '00:00'))

for df in reader: 
    if not df.empty: 
        df['epoch'] = pd.to_datetime(df.epoch,unit = 's')
        df.index = pd.to_datetime(df.epoch)
        for day in day_names: 
            day_df = df.between_time[day] # ERROR IS HERE
            if not day_df.empty:
                day_df.to_csv(f'{day}.csv', index=False, header=False, mode='a')

TypeError: объект 'method' недопустим


Требуемый вывод24 .csv файла, такие как: final1, final2, ..., final24


Пример данных:

e35f652a    68  11.9125 3.7432  1465084811  Sunday
e35f652a    69  11.8992 3.7412  1465084870  Sunday
e35f652a    70  11.8866 3.7342  1465084930  Sunday
e35f652a    71  11.8755 3.7321  1465084990  Sunday
e35f652a    72  11.8675 3.7247  1465085050  Sunday

Почему-то этот вопрос большеили менее похожий

1 Ответ

3 голосов
/ 30 октября 2019

Изменить [] для индексации на (), потому что DataFrame.between_time() и выбрать первое и второе значение кортежа путем индексации:

for day in day_names: 
    day_df = df.between_time(day[0], day[1])

Или изменить цикл для распакованных кортежей:

for s, e in day_names: 
    day_df = df.between_time(s, e)
...