Как объединить или переназначить столбцы с тем же именем? - PullRequest
0 голосов
/ 05 сентября 2018

Я хотел бы объединить два столбца, если они имеют одинаковое имя столбца. Я хотел бы, чтобы значение дублирующего столбца заменяло значение NaN.

Мой фрейм данных выглядит так:

 PETS    PETS   FRUITS  COUNTRY  FRUITS
 Pig     NaN    Apple   USA      NaN
 Cat     NaN     NaN    NL       Banana
 NaN     Dog     NaN    NaN      NaN

Вот как бы я выглядела моя datafame:

PETS   FRUITS   COUNTRY
Pig     Apple    USA
Cat     Banana    NL
Dog     NaN      NaN

Ответы [ 2 ]

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

Метод groupby first возвращает первое ненулевое значение.

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

  COUNTRY  FRUITS PETS
0     USA   Apple  Pig
1      NL  Banana  Cat
2     NaN     NaN  Dog

Без сортировки

df.groupby(df.columns, 1, sort=False).first()

  PETS  FRUITS COUNTRY
0  Pig   Apple     USA
1  Cat  Banana      NL
2  Dog     NaN     NaN
0 голосов
/ 05 сентября 2018

Вы можете группировать по столбцам и использовать ffill, а затем pd.concat:

g = df.groupby(df.columns, axis=1)
res = pd.concat([sub.ffill(axis=1).iloc[:, -1] for _, sub in g], axis=1)

print(res)

  COUNTRY  FRUITS PETS
0     USA   Apple  Pig
1      NL  Banana  Cat
2     NaN     NaN  Dog
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...