Объединить строки в датафрейме и сохранить другие столбцы - PullRequest
2 голосов
/ 19 сентября 2019

Я использую Python с пандами

У меня есть Dataframe:

   id title_fr lang title_en  title_de
0   1   maison   fr      NaN       NaN
1   1      NaN   en    house       NaN
2   1      NaN   de      NaN     hause

Ожидаемый результат прост, я хочу объединить строки с одинаковым идентификатором и оставить поле не пустым:

   id title_fr lang title_en  title_de
0   1   maison   fr    house     hause

Я пытался с помощью функции groupby, но это не работает

Я пробовал это (см. Объединение строк в фрейме данных ):

x = [
    {"id": 1, "title_fr": "maison", "lang": "fr"},
    {"id": 1, "title_en": "house", "lang": "en"},
    {"id": 1, "title_de": "maisonen", "lang": "de"},
]

df = pd.DataFrame(data=x)
df = df.groupby(['id']).sum()

Но я получил этот вывод:

      lang
id        
1   frende

1 Ответ

4 голосов
/ 19 сентября 2019

Вы можете использовать GroupBy.first - но он всегда возвращает первые не NaN s значения для групп, поэтому en с de для lang удаляются:

df = df.groupby('id', as_index=False).first()
print (df)
   id title_fr lang title_en  title_de
0   1   maison   fr    house  maisonen
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...