首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重命名Pandas DataFrame索引

重命名Pandas DataFrame索引
EN

Stack Overflow用户
提问于 2013-11-08 11:19:20
回答 5查看 428.4K关注 0票数 194

我有一个没有头的csv文件,有一个DateTime索引。我想重命名索引和列名,但使用df.rename()时,只有列名被重命名。虫子?我的版本是0.12.0

代码语言:javascript
运行
复制
In [2]: df = pd.read_csv(r'D:\Data\DataTimeSeries_csv//seriesSM.csv', header=None, parse_dates=[[0]], index_col=[0] )

In [3]: df.head()
Out[3]: 
                   1
0                   
2002-06-18  0.112000
2002-06-22  0.190333
2002-06-26  0.134000
2002-06-30  0.093000
2002-07-04  0.098667

In [4]: df.rename(index={0:'Date'}, columns={1:'SM'}, inplace=True)

In [5]: df.head()
Out[5]: 
                  SM
0                   
2002-06-18  0.112000
2002-06-22  0.190333
2002-06-26  0.134000
2002-06-30  0.093000
2002-07-04  0.098667
EN

回答 5

Stack Overflow用户

发布于 2015-09-08 20:28:07

您还可以使用Index.set_names,如下所示:

代码语言:javascript
运行
复制
In [25]: x = pd.DataFrame({'year':[1,1,1,1,2,2,2,2],
   ....:                   'country':['A','A','B','B','A','A','B','B'],
   ....:                   'prod':[1,2,1,2,1,2,1,2],
   ....:                   'val':[10,20,15,25,20,30,25,35]})

In [26]: x = x.set_index(['year','country','prod']).squeeze()

In [27]: x
Out[27]: 
year  country  prod
1     A        1       10
               2       20
      B        1       15
               2       25
2     A        1       20
               2       30
      B        1       25
               2       35
Name: val, dtype: int64
In [28]: x.index = x.index.set_names('foo', level=1)

In [29]: x
Out[29]: 
year  foo  prod
1     A    1       10
           2       20
      B    1       15
           2       25
2     A    1       20
           2       30
      B    1       25
           2       35
Name: val, dtype: int64
票数 9
EN

Stack Overflow用户

发布于 2020-08-21 19:56:50

对于单一索引:

代码语言:javascript
运行
复制
 df.index.rename('new_name')

对于多索引:

代码语言:javascript
运行
复制
 df.index.rename(['new_name','new_name2'])

我们也可以在最新的熊猫中使用这个:

rename_axis

票数 3
EN

Stack Overflow用户

发布于 2016-10-06 18:29:03

如果您想使用相同的映射来重命名列和索引,您可以这样做:

代码语言:javascript
运行
复制
mapping = {0:'Date', 1:'SM'}
df.index.names = list(map(lambda name: mapping.get(name, name), df.index.names))
df.rename(columns=mapping, inplace=True)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19851005

复制
相关文章

相似问题

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