首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多指标df的变化指标

多指标df的变化指标
EN

Stack Overflow用户
提问于 2019-07-29 11:21:30
回答 2查看 200关注 0票数 0

我有以下index1年份和index2类型的df。

代码语言:javascript
复制
                data
     year type  

     2017 A     1.23
          B     5.51
     2018 A     1.53
          B     0.89

我想重命名索引年,使其表示年份0和年份1。

我尝试了以下几点:

代码语言:javascript
复制
    index_years = []
    for i in range(len(df.index.levels[0])):
        index_years.append("Year " + str(i))
    df.index.levels[0] = index_years

但我得到了以下错误:

代码语言:javascript
复制
ERROR GIVEN: 'FrozenList' does not support mutable operations.

然后我试了一下

代码语言:javascript
复制
    pd.MultiIndex.from_tuples([(x[0].apply("Year " + str(i) for i in range(len(df.index.levels[0]))), x[1]) for x in df.index])

但是它给出了一个错误"int" boject is not subscriptible

我想得到的结果是:

代码语言:javascript
复制
                    data

     year    type  

     Year 0   A     1.23
              B     5.51
     Year 1   A     1.53
              B     0.89
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-30 10:14:28

您已经间接地这样做了,参见here (顺便说一句,这是对其他问题的重复)

代码语言:javascript
复制
# remove 'year' and 'type' from index
df = df.reset_index()
# do changes to year
df.year = df.year.apply(lambda x: 'Year %i' %(x-2017))
# set 'year' and 'type'as indices
df = df.set_index(['year', 'type'])
票数 0
EN

Stack Overflow用户

发布于 2019-07-30 00:42:49

有一个名为index.names的属性,您可以使用它来设置名称。下面是一个示例:

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame({'year':['2017','2017', '2018', '2018'], 
                   'type':['A', 'B', 'A', 'B'], 
                   'data':[1.23,5.51, 1.53, 0.89]
                 })
df = df.set_index(['year', 'type'])

# Here is the code to modify the DataFrame as you wanted
df = df.reset_index() #reset index so you can access the year as a column and have an integer index you can use
df.year = df.index.map(lambda x: f'year {x}') #map using a function to create new values for year that you need

df = df.set_index(['year', 'type']) #recreate the multilevel index
df
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57252772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档