Как вернуть новый фрейм данных, исключая определенные столбцы? - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь взять фрейм данных df и вернуть новый фрейм данных, исключая все столбцы со словом 'job' в его имени, исключая любые столбцы со строкой 'birth' в его имени и исключая эти столбцы: name, userID, lgID.

Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018

Вы можете создать список столбцов, которые вам не нужны, используя понимание списка, похоже, что в вашем случае вы можете получить:

exclude_columns = [x for x in df.columns if "birth" not in x] + ["name", "userID", "IgID"]

Тогда вы можете получить разницу этих столбцов и столбцов в вашей df

df_new = df[df.columns.difference(exclude_columns)]
0 голосов
/ 05 ноября 2018

Построить ответ @ sven-harris.

Список столбцов:

remove = [x for x in df.columns if 'job' in x or 'birth' in x]<br> remove += ['name', 'userID', 'IgID']

df = df.drop(remove, axis=1) # axis=1 to drop columns, 0 for rows.

0 голосов
/ 05 ноября 2018

Вы можете использовать методы Pandas str для создания логических масок, а затем отфильтровать объект pd.Index:

L = ['jobs', 'careers', 'birth', 'birthdate', 'name', 'userID', 'lgID', 'value1', 'value2']
df = pd.DataFrame(columns=L)

m1 = df.columns.str.contains('job|birth')         # regex supported
m2 = df.columns.isin(['name', 'userID', 'lgID'])  # use isin for exact matches

idx = df.columns[~(m1 | m2)]

Index(['careers', 'value1', 'value2'], dtype='object')

Затем отфильтруйте ваш фрейм данных:

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