Объединение строк внутри фрейма данных путем замены nans в разных столбцах - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть df:

df = pd.DataFrame([[1, np.nan, "filled", 3], [1, "filled", np.nan, 3], [1, "filled", np.nan, 4]], columns = ["a", "b", "c", "d"])
    a   b   c   d
0   1   NaN filled  3
1   1   filled  NaN 3
2   1   filled  NaN 4

И мой конечный результат должен быть:

df = pd.DataFrame([[1, "filled", "filled", 3], [1, "filled", np.nan, 4]], columns = ["a", "b", "c", "d"])
    a   b   c   d
0   1   filled  filled  3
1   1   filled  NaN 4

Поэтому я хочу объединить строки, которые идентичны во всех отношениях, кроме столбцаб и в.Проблема в том, что не всегда будет другая строка, идентичная, за исключением столбцов b и c.

Не могу придумать, как использовать df.groupby(["a", "d"]).apply(), чтобы получить то, что я хочу.

1 Ответ

0 голосов
/ 04 декабря 2018

Вы можете проверить с помощью groupby + first, оно выберет первое не NaN значение в качестве вывода

df.groupby(['a','d'],as_index=False).first()
Out[897]: 
   a  d       b       c
0  1  3  filled  filled
1  1  4  filled     NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...