У меня очень странная проблема с тех пор, как я перенес свой код с одного компьютера на другой. Я использую версию 0.25.1 для панд в этой системе, но я не уверен в версии для панд, которую я использовал ранее.
Проблема заключается в следующем:
Я создаю простой несортированный (фиктивный) фрейм данных, на котором хочу отсортировать значения и заполнить все значения NaN вперед.
In [1]: import pandas as pd
...: import numpy as np
In [2]: test = pd.DataFrame({"group" : ["A", "A", "A", "B", "B", "B", "C", "C"],
...: "count" : [2, 3, 1, 2, 1, 3, 1, 2],
...: "value" : [10, np.nan, 30, np.nan, 19, np.nan, 25, np.nan]})
In [3]: test
Out[3]:
group count value
0 A 2 10.0
1 A 3 NaN
2 A 1 30.0
3 B 2 NaN
4 B 1 19.0
5 B 3 NaN
6 C 1 25.0
7 C 2 NaN
Однако, когда я это делаю, я теряю весь столбец "группа", и он также не появляется в моем индексе.
In [4]: test.sort_values(["group", "count"]).groupby("group").ffill()
Out[4]:
count value
2 1 30.0
0 2 10.0
1 3 10.0
4 1 19.0
3 2 19.0
5 3 19.0
6 1 25.0
7 2 25.0
Я также пытался использовать следующее с использованием fillna, но это дает мне тот же результат:
In [5]: test.sort_values(["group", "count"]).groupby("group").fillna(method = "ffill")
Out[5]:
count value
2 1 30.0
0 2 10.0
1 3 10.0
4 1 19.0
3 2 19.0
5 3 19.0
6 1 25.0
7 2 25.0
Кто-нибудь знает, что я делаю неправильно? Кажется, проблема связана с методом ffill, поскольку я МОГУ использовать .mean () в группе и сохраняю свои группы.