Удалить все столбцы перед определенным столбцом (по имени) в пандах? - PullRequest
0 голосов
/ 30 августа 2018

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

Я поставлен в тупик о том, как удалить все столбцы после определенного столбца по имени.

df = pd.DataFrame(columns=['A','B','C','D'])
df.drop(['B':],inplace=True)

Я ожидаю, что новый df будет иметь только A B столбцы.

Ответы [ 4 ]

0 голосов
/ 30 августа 2018

df = df [df.columns [: список (df.columns) .index ('B') + 1]]

должно работать.

0 голосов
/ 30 августа 2018

get_loc и iloc

Отбрасывание некоторых равнозначно выбору других.

df.iloc[:, :df.columns.get_loc('B') + 1]

Empty DataFrame
Columns: [A, B]
Index: []
0 голосов
/ 30 августа 2018

Удаление всех столбцов после аналогично сохранению всех столбцов до и включительно. Итак:

In [321]: df = pd.DataFrame(columns=['A','B','C','D'])

In [322]: df = df.loc[:, :'B']

In [323]: df
Out[323]: 
Empty DataFrame
Columns: [A, B]
Index: []

(Использование inplace обычно не стоит).

0 голосов
/ 30 августа 2018
df.drop(df.columns[list(df.columns).index("B")+1:],inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...