如何在multiindex中找到索引列?

时间:2019-10-23 12:32:17

标签: python pandas

我想将第一个索引列更改为整数类型。

ex)0.0-> 0、1.0-> 1 2.0-> 2 ....

但是,我无法搜索第一列。如您所见,它由多索引组成。请帮助我。

我使用Pandas语法成功地接近了一个值。但是,我不知道如何更改第一列的整个值。

                             sum      count
timestamp(hour)  goods       price    price
    0.0            1         1000       40
                   2         200        29
                   3         129        11
                   4         76         5

    1.0            1         1000       40
                   2         200        29
                   3         129        11
                   4         76         5
     .
     .
     .

In[61]   pivot1.index[0][0]
Out[62]  0.0

2 个答案:

答案 0 :(得分:1)

您可以将DataFrame.renamelevel=0一起使用:

df = pd.DataFrame({
         'col':[4,5,4,5,5,4],
         'timestamp(hour)':[7,8.0,8,8.0,8,3],
         'goods':list('aaabbb')
}).set_index(['timestamp(hour)','goods'])

print (df)
                       col
timestamp(hour) goods     
7.0             a        4
8.0             a        5
                a        4
                b        5
                b        5
3.0             b        4

df = df.rename(int, level=0)
print (df)
                       col
timestamp(hour) goods     
7               a        4
8               a        5
                a        4
                b        5
                b        5
3               b        4

答案 1 :(得分:0)

您可以:

df.index = df.index.set_levels([df.index.levels[0].astype(int), df.index.levels[1]])

但是我猜jezrael的答案更好。