Удаление дубликатов столбцов - PullRequest
0 голосов
/ 05 ноября 2018

Если я воспользуюсь приведенным ниже кодом, в нем останется столбец с номерами NaN (см. Прилагаемый рисунок). У меня есть другие столбцы, которые похожи. Можно ли сохранить второй вместо первого?

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

enter image description here

Ответы [ 2 ]

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

groupby столбцы и выберите значение first, которое будет игнорировать Null.

df.groupby(df.columns, 1).first()

Пример:

import pandas as pd
import numpy as np

df = pd.DataFrame({'0': [1,2,3], '1': [np.NaN]*3, '2': [np.NaN]*3, '3': ['1x1', '2x2', '3x3']})
df.columns= ['Size', 'Size', 'Dims', 'Dims']

#   Size  Size Dims Dims
#0     1   NaN  NaN  1x1
#1     2   NaN  NaN  2x2
#2     3   NaN  NaN  3x3


df.groupby(df.columns, 1).first()

#  Dims Size
#0  1x1    1
#1  2x2    2
#2  3x3    3
0 голосов
/ 05 ноября 2018

Подход 1: отбросить столбцы, содержащие NaN

Если вам требуется исправление только для этого конкретного случая, и вы знаете, что в нужном столбце нет NaN s:

data_final2 = data_final.dropna(axis=1)

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

data_final.columns = ['Site_nan', 'Site', 'Dimensions_nan', 'Dimensions']
data_final2 = data_final[['Site', 'Dimensions']].copy()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...