Я использую groupby
на фрейме данных pandas для удаления всех строк, у которых нет минимума определенного столбца. Примерно так:
df1 = df.groupby("item", as_index=False)["diff"].min()
Однако, если у меня больше этих двух столбцов, другие столбцы (например, otherstuff
в моем примере) будут удалены. Могу ли я сохранить эти столбцы, используя groupby
, или мне придется искать другой способ отбрасывания строк?
Мои данные выглядят так:
item diff otherstuff
0 1 2 1
1 1 1 2
2 1 3 7
3 2 -1 0
4 2 1 3
5 2 4 9
6 2 -6 2
7 3 0 0
8 3 2 9
и должно закончиться как:
item diff otherstuff
0 1 1 2
1 2 -6 2
2 3 0 0
но я получаю это:
item diff
0 1 1
1 2 -6
2 3 0
Я просматривал документацию и ничего не могу найти. Я пытался:
df1 = df.groupby(["item", "otherstuff"], as_index=false)["diff"].min()
df1 = df.groupby("item", as_index=false)["diff"].min()["otherstuff"]
df1 = df.groupby("item", as_index=false)["otherstuff", "diff"].min()
Но ни одна из этих работ (с последним я понял, что синтаксис предназначен для агрегирования после создания группы).