我已经尝试了两天(我还是那个菜鸟)。任何人都可以帮我解决这个可能很简单的任务吗?
我正在练习这种格式的数据:
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')
这样的组合主键轻松访问它 - 我不知道这是否可能,或者它是如何引用它
任何人都可以解释我是怎么做到的吗? 谢谢!
答案 0 :(得分: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