Я пытаюсь осмыслить pandas
структуры данных и пытаюсь немного использовать их в гневе. Я понял, что операции groupby
приводят к объекту серии pandas. Но я не могу понять, как использовать полученную серию. В частности, я хочу сделать две вещи:
1 )«присоединить» результаты к исходному кадру данных
2 )выбрать конкретное значение из результирующего ряда на основе иерархического индекса.
Вот игрушечный пример для работы:
import pandas
df = pandas.DataFrame({'group1': ['a','a','a','b','b','b'],
'group2': ['c','c','d','d','d','e'],
'value1': [1.1,2,3,4,5,6],
'value2': [7.1,8,9,10,11,12]
})
dfGrouped = df.groupby( ["group1", "group2"], sort=True)
## toy function, obviously not my real function
def fun(x): return mean(x**2)
results = dfGrouped.apply(lambda x: fun(x.value1))
поэтому результирующий ряд (результаты )выглядит так:
group1 group2
a c 2.605
d 9.000
b d 20.500
e 36.000
Это имеет смысл. Но как мне:
1 )присоедините это обратно к исходному кадру данныхdf
2 )Выберите одно значение, где, например, group1=='b' и group2=='d'