我有两个数据帧:tr是训练集,ts是测试集。 它们包含列'uid'(user_id),'categ'(分类)和'response'。 'response'是我试图在ts中预测的因变量。
我正在尝试计算tr中的响应平均值,按列'uid'和'categ'分列:
avg_response_uid_categ = tr.groupby(['uid','categ']).response.mean()
这给出了结果但是(不合需要地)数据帧索引是MultiIndex。 (这是groupby(...,as_index = True)行为):
MultiIndex[--5hzxWLz5ozIg6OMo6tpQ SomeValueOfCateg, --65q1FpAL_UQtVZ2PTGew AnotherValueofCateg, ...
但我希望结果保留两列'uid','categ'并将它们分开。
我应该使用aggregate()
代替groupby()
吗?
尝试groupby(as_index=False)
是没用的。
答案 0 :(得分:0)
结果似乎有所不同,具体取决于您是否:
tr.groupby(['uid','categ']).response.mean()
或:
tr.groupby(['uid','categ'])['response'].mean() # RIGHT