我有一个没有头的csv文件,有一个DateTime索引。我想重命名索引和列名,但使用df.rename()只重命名列名。错误吗?我的版本是0.12.0
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
rename方法接受索引的字典,该字典应用于索引值。
重命名为索引级别的名称:
df.index.names = ['Date']
考虑这个问题的一个好方法是列和索引是同一类型的对象(index或MultiIndex),您可以通过转置来交换两者。
这有点令人困惑,因为索引名与列的含义相似,所以这里有更多的例子:
In [1]: df = pd.DataFrame([[1, 2, 3], [4, 5 ,6]], columns=list('ABC'))
In [2]: df
Out[2]:
A B C
0 1 2 3
1 4 5 6
In [3]: df1 = df.set_index('A')
In [4]: df1
Out[4]:
B C
A
1 2 3
4 5 6
你可以在索引上看到重命名,它可以改变值1:
In [5]: df1.rename(index={1: 'a'})
Out[5]:
B C
A
a 2 3
4 5 6
In [6]: df1.rename(columns={'B': 'BB'})
Out[6]:
BB C
A
1 2 3
4 5 6
同时重命名关卡名称:
In [7]: df1.index.names = ['index']
df1.columns.names = ['column']
注意:此属性只是一个列表,您可以将其重命名为列表理解/映射。
In [8]: df1
Out[8]:
column B C
index
1 2 3
4 5 6
rename方法接受索引的字典,该字典应用于索引值。
重命名为索引级别的名称:
df.index.names = ['Date']
考虑这个问题的一个好方法是列和索引是同一类型的对象(index或MultiIndex),您可以通过转置来交换两者。
这有点令人困惑,因为索引名与列的含义相似,所以这里有更多的例子:
In [1]: df = pd.DataFrame([[1, 2, 3], [4, 5 ,6]], columns=list('ABC'))
In [2]: df
Out[2]:
A B C
0 1 2 3
1 4 5 6
In [3]: df1 = df.set_index('A')
In [4]: df1
Out[4]:
B C
A
1 2 3
4 5 6
你可以在索引上看到重命名,它可以改变值1:
In [5]: df1.rename(index={1: 'a'})
Out[5]:
B C
A
a 2 3
4 5 6
In [6]: df1.rename(columns={'B': 'BB'})
Out[6]:
BB C
A
1 2 3
4 5 6
同时重命名关卡名称:
In [7]: df1.index.names = ['index']
df1.columns.names = ['column']
注意:此属性只是一个列表,您可以将其重命名为列表理解/映射。
In [8]: df1
Out[8]:
column B C
index
1 2 3
4 5 6