удалить повторяющиеся столбцы из pandas читать Excel данных кадра - PullRequest
3 голосов
/ 30 апреля 2020

Ближайший ответ - ссылка ниже. как удалить дубликат столбца, прочитанного из Excel в pandas

Мое требование немного отличается. У меня более 100 столбцов, и в именах столбцов может быть «.» (Точка). Пример кадра данных выглядит следующим образом: -

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

Поэтому я не могу усечь на основе «.1» или «. 2 '

Кроме того, когда я читаю из Excel, имена столбцов читаются как A, A.1 и A.2 и т. Д., Поэтому даже следующая команда не будет работать.

df = df.loc[:,~df.columns.duplicated()]

Я хочу отбросить A, A.1 и сохранить A.2

Пожалуйста, предложите путь вперед.

Ответы [ 2 ]

2 голосов
/ 30 апреля 2020

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

df.loc[:,~df.columns.str.replace('\.\d+','').duplicated(keep='last')]
1 голос
/ 30 апреля 2020

Примерно так может работать:

In [552]: df                                                                                                                                                                                                
Out[552]: 
   A  A.1  A.2  A.3  B  B.1  B.3  B.s
0  1    2    3    4  1    2    1    2
1  2    3    4    5  2    4    4    3

In [554]: df.filter(regex=r'^(?!\w\.[0-9])')                                                                                                                                                                
Out[554]: 
   A  B  B.s
0  1  1    2
1  2  2    3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...