我有一个相当大的DataFrame(〜500列和> 5000行)。我想在前15列中添加前缀。我发现了一个名为add_prefix()
的函数,该函数可以一次为所有列设置前缀。我尝试了以下方法:
df[df.columns[range(0,15)]] = df[df.columns[range(0,15)]].add_prefix('f_')
,我要添加'f_'
作为前缀。但是,输出似乎没有改变。
>>>
mean std var ... 525 526 label
0 -2.546261 17.827072 317.804485 ... -0.314016 -0.310878 0.0
1 -2.338710 17.915556 320.967136 ... -0.345603 -0.343088 0.0
2 -2.095051 17.539407 307.630788 ... -0.323596 -0.324990 0.0
3 -1.685209 18.257797 333.347150 ... -0.310060 -0.320796 0.0
4 -1.846169 17.240523 297.235618 ... -0.318660 -0.322732 0.0
我想拥有的是:
>>>
f_mean f_std f_var ... 525 526 label
0 -2.546261 17.827072 317.804485 ... -0.314016 -0.310878 0.0
1 -2.338710 17.915556 320.967136 ... -0.345603 -0.343088 0.0
2 -2.095051 17.539407 307.630788 ... -0.323596 -0.324990 0.0
3 -1.685209 18.257797 333.347150 ... -0.310060 -0.320796 0.0
4 -1.846169 17.240523 297.235618 ... -0.318660 -0.322732 0.0
我在做什么错了?
答案 0 :(得分:4)
由于索引不支持可变操作,因此您不能像当前那样直接分配前缀。因此,您将不得不重新分配所有列。这是一种使用列表理解的方法:
df.columns = ['f_' + i if ix < 15 else i for ix, i in enumerate(df.columns)]