在Pandas中转换层次索引为列。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Pandas中转换层次索引为列。相关的知识,希望对你有一定的参考价值。
以下是输入的数据
df1 = pd.DataFrame( {
"author" : ["A","B","A","A","C","B"] ,
"topic" : ["cat", "dog", "dog", "cat", "dog", "dog"] } )
df1
author topic
0 A cat
1 B dog
2 A dog
3 A cat
4 C dog
5 B dog
我使用的分组如下
g1 = df1.groupby('author')['topic'].value_counts()
author topic
A cat 2
dog 1
B dog 2
C dog 1
我想实现的是
author cat dog
A 2 1
B 0 2
C 0 1
基本上,需要将分层索引中的二阶索引转换为列。如何才能做到这一点?
答案
使用 Series.unstack
这里。
df = df1.groupby('author')['topic'].value_counts().unstack(fill_value=0)
另一个解决方案是: crosstab
:
df = pd.crosstab(df1['author'], df1['topic'])
以上是关于在Pandas中转换层次索引为列。的主要内容,如果未能解决你的问题,请参考以下文章
pandas读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用reset_index函数把行索引重置为列数据(level参数设置将原行索引中的指定层转化为列数据)
pandas读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用reset_index函数把行索引重置为列数据(level参数设置将原行索引中的指定层转化为列数据)
使用 pandas python 将字符串日期转换为列中所有值的数字
pandas读取csv数据使用reset_index函数把行索引重置为列数据(level参数设置将原行索引中的指定层转化为列数据设置drop参数则删除转化后的数据列)
pandas读取csv数据使用reset_index函数把行索引重置为列数据(level参数设置将原行索引中的指定层转化为列数据设置drop参数则删除转化后的数据列)