将按对象分组转换为多索引数据帧

如果我有以下数据帧

&gt&燃气轮机&燃气轮机;df=pd.DataFrame({'Name':['Bob']*3+['Alice']*3\
'Destination':['Athens','Rome']*3,“Length”:np.random.randint(1,6,6)}
&燃气轮机&燃气轮机&燃气轮机;df
目标长度名称
0雅典3鲍勃
1罗马5鲍勃
雅典2号鲍勃
3罗马1爱丽丝
4雅典3爱丽丝
5罗马5爱丽丝

我可以通过名字和目的地来判断

&gt&燃气轮机&燃气轮机;grouped=df.groupby(['Name','Destination'])
&燃气轮机&燃气轮机&燃气轮机;对于nm,分组中的gp:
&燃气轮机&燃气轮机&燃气轮机;打印纳米
&燃气轮机&燃气轮机&燃气轮机;打印总成
(‘爱丽丝’、‘雅典’)
目标长度名称
4雅典3爱丽丝
(‘爱丽丝’、‘罗马’)
目标长度名称
3罗马1爱丽丝
5罗马5爱丽丝
(‘鲍勃’、‘雅典’)
目标长度名称
0雅典3鲍勃
雅典2号鲍勃
(“鲍勃”,“罗马”)
目标长度名称
1罗马5鲍勃

但我想从中得到一个新的多索引数据帧,看起来像

长度
爱丽丝雅典3
罗马1
罗马5
鲍勃·雅典3
雅典2
罗马5

似乎应该有一种类似于Dataframe(grouped)的方法来获取我的多索引数据帧,但是我得到了一个PandasError(“未正确调用数据帧构造函数!”)

最简单的方法是什么?还有,有人知道是否有将groupby对象传递给构造函数的选项,或者我只是做错了吗

谢谢

由于没有聚合索引相似的行,请尝试使用列名列表设置索引

[2]on

:df.set_索引(['Name','Destination'])
Output[2]:
长
名称目的地
鲍勃·雅典3
罗马5
雅典2
爱丽丝罗马1
雅典3
罗马5

发表评论