我試圖圍繞pandas
數據結構圍繞我的大腦,並嘗試在憤怒中使用它們。我已經知道groupby
操作會產生一個熊貓系列對象。但我無法弄清楚如何使用最終的系列。特別是,我想要做的兩招:將具有分層索引的熊貓系列加入源數據框
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)選擇一個值,其中,比方說,1組== 'B' &組2 == 'd'
看起來正是我想要做的。這是如何設置索引的一個很好的例子。我沒有意識到這是如何工作的。 – 2012-08-09 15:16:46
@ wouter-overmeire - 非常好。今天我一直在努力。 – John 2012-11-13 09:19:02
@ wouter-overmeire,@ jd-long - 如果必須將多個結果添加回DataFrame,這將如何工作。例如,兩個單獨功能的結果如何?將def UCL(x):return mean(x2)+ np.std * 2'和'def LCL(x):return mean(x2)-np.std * 2'傳回給df?或者,還有更好的方法? – John 2012-11-13 09:49:40