私は脳をpandas
のデータ構造の周りに巻き込み、怒りのように使ってみようとしています。私はgroupby
操作がpandasシリーズオブジェクトになることを理解しました。しかし、私は結果のシリーズをどのように使用するかを理解することはできません。特に、私は2つのことをしたい:元のDataFrameに戻る階層インデックスを持つPandasシリーズに参加
1)バック初期DATAFRAMEに結果
2)は、階層的指標に基づいた系列の特定の値を選択して「参加します」。ここで
はで動作するようにおもちゃの例です:
group1 group2
a c 2.605
d 9.000
b d 20.500
e 36.000
理にかなっていること:
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))
ので、結果としてシリーズ(結果)は次のようになります。しかし、どのように私はない:
1)は、元のデータフレームdf
2に、このバックに参加)、単一の値、たとえば、グループ1 == 'B' &グループ2を選択== 'D'
私は何をしようとしていたかのように見えます。これは、インデックスの設定方法の良い例です。私はその仕組みが分からなかった。 –
@wouter-overmeire - 非常に良い。私は今日これで苦労していた。 – John
@wouter-overmeire、@ jd-long - 複数の結果をDataFrameに追加し直さなければならなかった場合、どのように動作しますか?たとえば、2つの別々の機能(例: 'def UCL(x):return mean(x2)+ np.std * 2'と' def LCL(x):return mean(x2)-np.std * 2'はdfに返されますか?それとも良い方法がありますか? – John