Как найти индексный столбец в мультииндексе? - PullRequest
0 голосов
/ 23 октября 2019

Я хочу изменить первый столбец индекса на целочисленный тип.

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

Однако я не могу найти первый столбец. Как видите, он состоит из нескольких индексов. Пожалуйста, помогите мне ..

Мне удалось приблизиться к одному значению с помощью грамматики Панд. Однако я не знаю, как изменить все значение первого столбца.

                             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 ]

1 голос
/ 23 октября 2019

Вы можете использовать DataFrame.rename с level=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
0 голосов
/ 23 октября 2019

Вы могли бы:

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

Но ответ Джезраэля лучше, я думаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...