当前位置:  开发笔记 > 编程语言 > 正文

如何为每个列名添加后缀(或前缀)?

如何解决《如何为每个列名添加后缀(或前缀)?》经验,为你挑选了3个好方法。

我想为_x每个列名添加后缀,如下所示:

featuresA = myPandasDataFrame.columns.values + '_x'

我该怎么做呢?另外,如果我想添加x_后缀,解决方案将如何变化?



1> Jarosław Szy..:

以下是我认为最好的添加后缀的方法.

df = df.add_suffix('_some_suffix')

因为它是在DataFrame上调用并返回DataFrame的函数 - 您可以在调用链中使用它.


如果要为名称添加前缀,可以使用add_prefix.
太糟糕了,这不可能是可变的(即没有`inplace = True`参数选项).否则,完美.

2> Stefan..:

你可以使用一种list理解:

df.columns = [str(col) + '_x' for col in df.columns]

还有如内置的方法.add_suffix().add_prefix()在另一个答复中提到.



3> cs95..:

优雅的原位串联

如果您尝试df就地修改,则最便宜(也是最简单)的选项是直接在就地添加df.columns(即使用Index.__iadd__)。

df = pd.DataFrame({"A": [9, 4, 2, 1], "B": [12, 7, 5, 4]})
df

   A   B
0  9  12
1  4   7
2  2   5
3  1   4

df.columns += '_some_suffix'
df

   A_some_suffix  B_some_suffix
0              9             12
1              4              7
2              2              5
3              1              4

要添加前缀,您可以类似地使用

df.columns = 'some_prefix_' + df.columns
df

   some_prefix_A  some_prefix_B
0              9             12
1              4              7
2              2              5
3              1              4

另一个便宜的选择是使用带有f-string格式的列表理解(在python3.6 +上可用)。

df.columns = [f'{c}_some_suffix' for c in df]
df

   A_some_suffix  B_some_suffix
0              9             12
1              4              7
2              2              5
3              1              4

对于前缀,类似地,

df.columns = [f'some_prefix{c}' for c in df]

方法链接

在方法链接时也可以添加* fix。要添加后缀,请使用DataFrame.add_suffix

df.add_suffix('_some_suffix')

   A_some_suffix  B_some_suffix
0              9             12
1              4              7
2              2              5
3              1              4

这将返回数据的副本。IOW,df未修改。

也可以使用添加前缀DataFrame.add_prefix

df.add_prefix('some_prefix_')

   some_prefix_A  some_prefix_B
0              9             12
1              4              7
2              2              5
3              1              4

里面也没有修改df


批判 add_*fix

如果您尝试执行方法链接,这些是好的方法:

df.some_method1().some_method2().add_*fix(...)

但是,add_prefix(和add_suffix)创建整个数据框的副本,只是为了修改标题。如果您认为这样做很浪费,但仍然希望进行链接,则可以致电pipe

def add_suffix(df):
    df.columns += '_some_suffix'
    return df

df.some_method1().some_method2().pipe(add_suffix)


您的`add_ * fix`评论非常重要,@ cs95。
推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有