重命名列索引熊猫数据框

时间:2019-06-18 11:58:57

标签: python pandas

我想将以下数据框的第1列重命名为“参考”。 我有很多列,因此无法重命名每个列或为其设置名称。

data = [['TC1', 103, 563], ['TC2', 1567, 1290], ['TC3', 1467, 567]] 

dftrash=pd.DataFrame(data, columns = ['Card', '', '']) 

这是数据框

    Card        
0   TC1 1037    8563
1   TC2 1567    1290
2   TC3 1467    567

现在,我想将第一列重命名为“ Ref”。 我尝试过了

dftrash.rename(columns={dftrash.columns[1]:'REF'},inplace=True)

重命名具有与column [1]相似标题的所有列。


    Card REF    REF
0   TC1 1037    8563
1   TC2 1567    1290
2   TC3 1467    567

3 个答案:

答案 0 :(得分:1)

熊猫中的列是不可变的-最好的选择是制作numpy数组,通过索引设置值并分配回去:

#pandas 0.24+
a = dftrash.columns.to_numpy()
#pandas below
#a = dftrash.columns.to_numpy()
a[1] = 'REF'
print (a)
['Card' 'REF' '']

或将值转换为列表:

a = dftrash.columns.tolist()
a[1] = 'REF'
print (a)
['Card', 'REF', '']

dftrash.columns = a
print (dftrash)
  Card   REF      
0  TC1   103   563
1  TC2  1567  1290
2  TC3  1467   567

In past versions of pandas was problem assign to numpy array,现在看起来不错,但仍建议使用第一个解决方案:

dftrash.columns.values[1] = "REF"
print (dftrash)
  Card   REF      
0  TC1   103   563
1  TC2  1567  1290
2  TC3  1467   567

答案 1 :(得分:0)

我认为这可以完成工作:

dftrash.columns = ['REF'] + list(dftrash.columns[1:])

基本上,它会创建新的名称列表,熊猫可以使用该列表来重命名列。或更笼统:

new_names = list(dftrash.columns)
new_names[0] = 'REF'
dftrash.columns = new_names

答案 2 :(得分:0)

您可以提取列名,编辑列名,然后再次插入

data = [['TC1', 103, 563], ['TC2', 1567, 1290], ['TC3', 1467, 567]]
dftrash=pd.DataFrame(data, columns = ['Card', '', '']) 
colnames = list(dftrash.columns)
colnames[1] = "REF"
dftrash.set_axis(colnames, axis=1, inplace=True)
相关问题