#python #pandas #group-by
#python #pandas #группировка по
Вопрос:
У меня есть этот фрейм данных:
import pandas as pd
df = pd.DataFrame( {
"Name" : ["Bob", "Bryan", "Bob", "Bryan" , "Bryan"] ,
"Value" : [10,20,15,50,45] } )
Затем я получил минимальное значение на человека:
df1 = df.groupby(["Name"])["Value"].min()
Это довольно просто. Тем не менее, я хочу продолжать работать с фреймами данных, но df1 — это серия:
type(df1)
Как я могу снова преобразовать его в фрейм данных?
Ответ №1:
Используйте параметр as_index=False
в DataFrame.groupby
:
df1 = df.groupby(["Name"],as_index=False)["Value"].min()
Или добавить Series.reset_index
:
df1 = df.groupby(["Name"])["Value"].min().reset_index()
print (df1)
Name Value
0 Bob 10
1 Bryan 20
Ответ №2:
Также вы можете использовать agg(), который возвращает фрейм данных.
df1 = df.groupby("Name").agg({'Value': 'min'}).reset_index()