如何设置python pandas中第一列的列名?奇怪的

2024-10-01 13:37:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个xls,标题行为:

             AZ-Phoenix     CA-Los Angeles CA-San Diego
YEAR         PHXR           LXXR           SDXR
January 1987  59.33         54.67          77
February 1987 59.65         54.89          78
March 1987    59.99         55.16          79

注:第一行“年份列”上方没有名称。如何将该行的名称设置为年?在

^{pr2}$

但它正在用年份取代亚利桑那-菲尼克斯之争。我真的不能改变我想要的专栏。在

如何更改这一行??在


Tags: 名称标题xlsyearcaazsan年份
3条回答

通过使用rename_axis

df.rename_axis('YEAR',1).rename_axis('YEAR',0) # change YEAR to whatever you need for rename :) 
Out[754]: 
YEAR  value           timestamp
YEAR                           
0      1    2017-10-03 14:33:52
1     Water 2017-10-04 14:33:48
2      1    2017-10-04 14:33:45
3      1    2017-10-05 14:33:30
4     Water 2017-10-03 14:33:40
5     Water 2017-10-05 14:32:13
6     Water 2017-10-04 14:32:01
7      1    2017-10-03 14:31:55

如果粘贴的文本是Excel文件的格式,如下所示:

excel screenshot

您可以通过以下几种方式处理:

可以假设这两行是多级索引:

df = pandas.read_excel('test.xlsx', header=[0,1])

这将产生一个数据帧,您可以这样索引:

^{pr2}$

导致

YEAR         PHXR
1987-01-01  59.33
1987-02-01  59.65
1987-03-01  59.99

如果第一行实际上是多余的(似乎机场已经由三个字母的机场代码定义,并附加了一个R),您可以在导入时忽略该行,得到一个“更平坦”的数据帧:

df_flat = pandas.read_excel('test.xlsx', skiprows=1, index_col=0)

您可以通过机场代码为您编制索引:

df_flat.PHXR

给予

YEAR
1987-01-01    59.33
1987-02-01    59.65
1987-03-01    59.99
Name: PHXR, dtype: float64

年份不是列,而是索引。
尝试:

df.index.name = 'foobar'

或者:

^{pr2}$

在本例中,YEAR将成为一个普通列,您可以对其进行重命名。在

相关问题 更多 >