Вызов определенных столбцов с регулярными выражениями панд - PullRequest
0 голосов
/ 19 сентября 2018

Используя панд, я хочу сделать что-то подобное во время цикла по фреймам данных:

    for body_part, columns in zip(self.body_parts, usecols_gen()):
        body_part_df = self.read_csv(usecols=columns)
        if self.normalize:
            body_part_df[r'x(\.\d)?'] = body_part_df[r'x(\.\d)?'].apply(lambda x: x/x_max)
        print(body_part_df)
        result[body_part] = body_part_df

Я использую регулярные выражения, потому что имена столбцов, на которые я ссылаюсь, искажены: x, x.1, x.2, ..., xn

Это дает KeyError, и я не понимаю причину.Пожалуйста помоги.Заранее спасибо.

1 Ответ

0 голосов
/ 19 сентября 2018

Вы не можете запросить столбец DataFrame с помощью регулярного выражения, вместо этого вы можете выполнить итерацию по нему и применить свою функцию к соответствующим столбцам, например:

import re

    # ...

    for body_part, columns in zip(self.body_parts, usecols_gen()):
        body_part_df = self.read_csv(usecols=columns)
        if self.normalize:
            for column in body_part_df:
                if re.match(r"x(\.\d)?", column):  # or re.search() for partial matches
                    body_part_df[column] = body_part_df[column].apply(lambda x: x/x_max)
        print(body_part_df)
        result[body_part] = body_part_df
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...