0

2 つのデータフレームがあります:trはトレーニング セット、tsテスト セットです。これらには、列uid(​​user_id)、categ(カテゴリ)、およびが含まれますresponseresponsets で予測しようとしている従属変数です。

の平均を計算しようとしていますresponsein tr、列で分割されたuidおよびcateg:

avg_response_uid_categ = tr.groupby(['uid','categ']).response.mean()

これにより結果が得られますが、(望ましくないことに) データフレーム インデックスは MultiIndex です。(これがgroupby(..., as_index=True)動作です):

MultiIndex[--5hzxWLz5ozIg6OMo6tpQ  SomeValueOfCateg, --65q1FpAL_UQtVZ2PTGew  AnotherValueofCateg, ...

しかし、代わりに、結果で2つの列「uid」、「categ」を保持し、それらを別々に保持したいと考えています。

aggregate()の代わりに使用する必要がありgroupby()ますか? 努力groupby(as_index=False)は無駄です。

4

1 に答える 1

0

結果は、次のようにするかどうかによって異なるようです。

tr.groupby(['uid','categ']).response.mean()

また:

tr.groupby(['uid','categ'])['response'].mean()  # RIGHT 

つまり、単一のシリーズをスライスするか、単一のシリーズを含む DataFrame をスライスするか。関連:ラベルで選択するパンダは、シリーズを返す場合があり、DataFrameを返す場合があります

于 2013-08-04T07:55:03.247 に答える