Присоединение серии Pandas с иерархическим индексом обратно к исходному кадру данных

Я пытаюсь осмыслить 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'

7
задан piRSquared 5 January 2017 в 00:20
поделиться