我如何在python中将未命名的列重命名为具有增量编号的列:0

时间:2019-12-13 02:07:24

标签: python pandas

Df之前:

Computer

对于df来说像这样:

    unnamed:0   unnamed:1  unnamed:2
0   Megan       30000      Botany
1   Ann         24000      Psychology
2   John        24000      Police
3   Mary        45000      Genetics
4   Jay         60000      Data Science

我试图重命名未命名的列:

     t0       t1       t2
0   Megan  30000   Botany
1   Ann    24000   Psychology
2   John   24000   Police
3   Mary   45000   Genetics
4   Jay    60000   Data Science

5 个答案:

答案 0 :(得分:3)

这将从0到您拥有的列数

testfile.columns = ['t{}'.format(i) for i in range(testfile.shape[1])]

答案 1 :(得分:2)

您可以使用它来重置列名并为其添加前缀

df = df.T.reset_index(drop=True).T.add_prefix('t')
      t0     t1            t2
0  Megan  30000        Botany
1    Ann  24000    Psychology
2   John  24000        Police
3   Mary  45000      Genetics
4    Jay  60000  Data Science

答案 2 :(得分:1)

尝试一下:

df.rename(lambda x: x.replace('unnamed:', 't'), axis=1) 

输出:

     t0       t1       t2
0   Megan  30000   Botany
1   Ann    24000   Psychology
2   John   24000   Police
3   Mary   45000   Genetics
4   Jay    60000   Data Science

答案 3 :(得分:1)

使用字符串rename尝试split

df = df.rename(lambda x: 't'+x.split(':')[-1], axis=1)

Out[502]:
      t0     t1           t2
0  Megan  30000       Botany
1    Ann  24000   Psychology
2   John  24000       Police
3   Mary  45000     Genetics
4    Jay  60000  DataScience

如果您不关心unnamed:X中的数字,只想增加t上的数字,则可以使用numpy arangenp.char.add来构造它们

np.char.add('t', np.arange(df.shape[1]).astype(str))
array(['t0', 't1', 't2'], dtype='<U12')

直接将其分配给列

df.columns = np.char.add('t', np.arange(df.shape[1]).astype(str))

答案 4 :(得分:1)

您的数据已经在增加。您只需要t而不是unnamed:作为前缀。

df.columns = df.columns.str.replace('unnamed:', 't')