透视Pandas中的系列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了透视Pandas中的系列相关的知识,希望对你有一定的参考价值。
我有一个看起来像这样的系列:
Area Classification Samples
88 500m-1bi 34
94 500m-1bi 112
09 500m-1bi 912
>1bi 31
81 <1m 6574
87 100-500m 12
...
我希望'Classification'标签成为列,'Samples'成为值,所以它看起来像这样:
Area <1m 100-500m 500-1bi >1bi
88 34
94 112
09 912 31
81 6574
87 12
...
我试过了:
df.pivot(columns='Classification', values='Samples')
但是当我这样做时,我得到了AttributeError: 'Series' object has no attribute 'pivot'
。
所以我试着把它变成一个Dataframe:
df.to_frame().pivot(columns='Classification', values='Samples')
在这种情况下,我得到:
KeyError: 'Classification'
关于如何解决它的任何想法?
**编辑**
这个系列是从groupby函数获得的:
df=df.groupby(['Area','Classification']).agg('count').sort_values('Samples')['Samples']
答案
这个例子略微修改了df。在Area中添加了10个来填补空白:
Area Classification Samples
88 500m-1bi 34
94 500m-1bi 112
09 500m-1bi 912
10 >1bi 31
81 <1m 6574
87 100-500m 12
您需要设置索引然后取消堆栈:
df.set_index(['Area', 'Classification']).unstack()
输出:
Samples
Classification 100-500m 500m-1bi <1m >1bi
Area
9 NaN 912.0 NaN NaN
10 NaN NaN NaN 31.0
81 NaN NaN 6574.0 NaN
87 12.0 NaN NaN NaN
88 NaN 34.0 NaN NaN
94 NaN 112.0 NaN NaN
以上是关于透视Pandas中的系列的主要内容,如果未能解决你的问题,请参考以下文章