与Pandas分离数据

2024-04-29 05:10:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些数据要从“长”到“宽”。我可以使用unstack使数据更宽,但最后得到的索引看起来像是一个我无法摆脱的索引。下面是一个虚拟的例子:

## set up some dummy data
import pandas as pd
d = {'state'  : ['a','b','a','b','a','b','a','b'],
     'year' : [1,1,1,1,2,2,2,2],
     'description'  : ['thing1','thing1','thing1','thing2','thing2','thing2','thing1','thing2'],
     'value' : [1., 2., 3., 4.,1., 2., 3., 4.]}
df = pd.DataFrame(d)
## now that we have dummy data do the long to wide conversion

dfGrouped = df.groupby(['state','year', 'description']).value.sum() 

dfUnstacked = dfGrouped.unstack('description')
print dfUnstacked


description  thing1  thing2
state year                 
a     1           4     NaN
      2           3       1
b     1           2       4
      2         NaN       6

所以这看起来像我所期望的。现在我想要一个没有索引的数据框,列有“state”、“year”、“thing1”、“thing2”。所以我应该这样做:

dfUnstackedNoIndex = dfUnstacked.reset_index()
print dfUnstackedNoIndex

description state  year  thing1  thing2
0               a     1       4     NaN
1               a     2       3       1
2               b     1       2       4
3               b     2     NaN       6

好的,很接近了。但我不想让描述继续下去。所以让我们只选择我想要的列:

print dfUnstackedNoIndex[['state','year','thing1','thing2']]

description state  year  thing1  thing2
0               a     1       4     NaN
1               a     2       3       1
2               b     1       2       4
3               b     2     NaN       6

“描述”是怎么回事?即使我重置了索引,只选择了几列,为什么它仍然挂起?很明显我没有找到正确的东西。

FWIW,我的熊猫版是0.12


Tags: 数据datavaluedescriptionnanyeardummypd