如何从列中的数据建立层次索引?

2024-03-28 08:20:01 发布

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

我已经试了两天找这个了(我还是个笨蛋)。有人能帮我完成这个简单的任务吗?你知道吗

我正在练习以下格式的数据:

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'))轻松地访问它——我不知道这是否可行,或者它是如何引用它的

有人能解释一下我是怎么做到的吗? 谢谢您!你知道吗


Tags: 数据namedataframedfnames格式year笨蛋
1条回答
网友
1楼 · 发布于 2024-03-28 08:20:01

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

相关问题 更多 >