1

我已经尝试并搜索了两天(我仍然是菜鸟)。谁能帮我完成这个可能很简单的任务?

我正在练习这种格式的数据:

df = DataFrame({'year':[2010]*5 + [2011]*5, 'names':['a','b','c','d','e']*2, 'births':[1,2,3,4,5,6,7,8,9,10]})


    births names  year
0       1     a  2010
1       2     b  2010
2       3     c  2010
3       4     d  2010
4       5     e  2010
5       6     a  2011
6       7     b  2011
7       8     c  2011
8       9     d  2011
9      10     e  2011

我想以这种格式获得它:

Year Name   births
2010   a    1
       b    2
       c    3
       d    4
       e    5
2011   a    6
       b    7
       c    8
       d    9
       e    10

我想要这样,这样我就可以使用组合主键轻松访问它,例如df.ix('2010','a')--- 我不知道这是否可能,或者是否可以引用它

谁能解释我是怎么做到的?谢谢!

4

1 回答 1

2

df = df.set_index(['year', 'names'])会给你你想要的。您可以访问元素

In[781]: df.set_index(['year', 'names']).xs(2010)
Out[777]: 
       births
names        
a           1
b           2
c           3
d           4
e           5
In[782]: df.set_index(['year', 'names']).xs([2010, 'a'])
Out[778]: 
births    1
Name: (2010, a), dtype: int64
于 2014-08-01T16:36:09.190 回答