Как использовать элементы usecols, которые являются регулярными, а не строками? - PullRequest
0 голосов
/ 04 сентября 2018

Я создал скрипт для просмотра необходимых данных, используя панд. Сейчас я получаю больше файлов, которые мне нужно просмотреть, и, к сожалению, эти файлы не имеют одинаковых заголовков.

Например, я поместил в свой список столбцов использование 'id_num', а в некоторых файлах он отображается как 'num_id'.

Можно ли по-прежнему использовать созданный мною список протоколов и разрешать определенным элементам в нем "соединяться" с разными строками заголовков, например, с помощью regex?

1 Ответ

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

Я полагаю, что вы имеете в виду ключевое слово usecols в pd.read_csv (или какое-нибудь аналогичное чтение панд)? Я уверен, что вы поняли, что pandas не может выполнять поиск по регулярному выражению на фрейме данных до того, как даже прочитает этот фрейм, поэтому я вполне уверен, что поиск по регулярному выражению с ключевым словом usecols не существует т выполнимо.

Однако, после того, как вы прочитали csv в фрейм данных (назовем его df для примера), вы можете очень легко отфильтровать интересующие столбцы с помощью регулярных выражений.

например, предположим, что ваш новый кадр данных загружен в df:

potential_columns = ['num_id', 'id_num']

df_cols = [col for col in df.columns if re.search('|'.join(potential_columns), col)]

Вы можете перечислить все потенциальные столбцы, которые хотите найти, с помощью potential_columns. Затем с помощью join создайте один массивный поиск по регулярному выражению. Затем используйте понимание списка, чтобы объединить все допустимые столбцы в df.columns. Как только это будет сделано, вы можете завершить этот процесс, позвонив по номеру:

df = df[df_cols]

Работа с дублирующимися столбцами, создание умных ключевых слов для поиска оставлено для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...