我有pandas.DataFrame
和Multiindex
,因此:
a val
dog 1
cat 2
b
fox 3
rat 4
我想要一个系列,其条目是1级索引值的列表,
所以:
a [dog, cat]
b [fox, rat]
以下确实有效,但速度很慢且不够优雅:
fff = df.groupby(level=0)['val'].agg(lambda x:[i[1] for i in list(x.index.values)])
所以我希望有更好的方法.
解决方法:
reset_index和groupby
df.reset_index(level=1).groupby(level=0)['level_1'].apply(list)
Out[21]:
a [dog, cat]
b [fox, rat]
Name: level_1, dtype: object
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。