【发布时间】:2018-07-16 04:26:24
【问题描述】:
我创建了一个基于字母的系列:D、E、F,并以这种方式在每行从 0 到 9 插入值:
df = pd.DataFrame({'letters': list('DDDDDDDDDDEEEEEEEEEEFFFFFFFFFF'), 'numbers': [0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9]})
Output:
letters numbers
0 D 0
1 D 1
2 D 2
....
9 D 9
10 E 0
.....
18 E 8
19 E 9
20 F 0
......
28 F 8
29 F 9
然后我用这段代码在这个 Df 上创建了多索引(我想检查这是正确的方法还是有其他方法来创建多索引)
latestone = df.set_index(['letters', 'numbers'],drop=False)
output:
letters numbers
letters numbers
D 0 D 0
1 D 1
....
9 D 9
E 0 E 0
1 E 1
...
9 E 9
F 0 F 0
1 F 1
...
9 F 9
基于此,或者是否有更好的方法来创建多索引,我想知道这些值是否按字典顺序排序(如果可能,为 True 或 False)。
另外,我想为字母 E 获取索引为 [2,5,7] 的行。
【问题讨论】:
-
你想要一个与索引值相同的数据框吗?似乎没有必要。或者您只是对创建索引感兴趣?
-
@busybear 我试图这样做,但我得到了不同的结果,例如 [(D, 0), (D, 1), (D, 2), (D, 3), (D , 4), (D, 5), (D, 6), (D, 7), (D, 8), (D, 9), (E, 0), (E, 1), (E, 2 ), (E, 3), (E, 4), (E, 5), (E, 6), (E, 7), (E, 8), (E, 9), (F, 0), (F, 1), (F, 2), (F, 3), (F, 4), (F, 5), (F, 6), (F, 7), (F, 8), (F , 9)] 我不确定这个结果是否能帮助我得到我想要的解决方案。
-
看起来确实像您想要的索引。每个元组中的第一个元素是索引的第一级,元组的第二个元素是索引的第二级。我提供了一个有效的答案。
标签: python python-3.x pandas multi-index