在数据框切片的列中添加前缀

时间:2019-04-25 12:51:47

标签: python pandas dataframe

我有一个相当大的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

我在做什么错了?

1 个答案:

答案 0 :(得分:4)

由于索引不支持可变操作,因此您不能像当前那样直接分配前缀。因此,您将不得不重新分配所有列。这是一种使用列表理解的方法:

df.columns = ['f_' + i if ix < 15 else i for ix, i in enumerate(df.columns)]