首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在每个列名中添加后缀(或前缀)?

如何在每个列名中添加后缀(或前缀)?
EN

Stack Overflow用户
提问于 2015-12-02 17:51:29
回答 8查看 158.6K关注 0票数 145

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

代码语言:javascript
运行
复制
featuresA = myPandasDataFrame.columns.values + '_x'

我该怎么做?此外,如果我想添加x_作为后缀,解决方案将如何改变?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-12-02 17:53:04

您可以使用list理解:

代码语言:javascript
运行
复制
df.columns = [str(col) + '_x' for col in df.columns]

还有一些内置的方法,如.add_suffix().add_prefix(),在另一个答案中已经提到了。

票数 157
EN

Stack Overflow用户

发布于 2016-01-29 15:37:21

在我看来,以下是添加后缀的最好方式。

代码语言:javascript
运行
复制
df = df.add_suffix('_some_suffix')

因为它是一个在DataFrame上调用并返回DataFrame的函数,所以您可以在调用链中使用它。

票数 239
EN

Stack Overflow用户

发布于 2019-01-28 21:37:25

优雅的就地级联

如果您试图在本地修改df,那么最便宜(也是最简单)的选项是直接在df.columns上进行就地添加(即使用Index.__iadd__)。

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
df.columns += '_some_suffix'
df

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

若要添加前缀,请类似地使用

代码语言:javascript
运行
复制
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+上获得)。

代码语言:javascript
运行
复制
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

而前缀,类似的,

代码语言:javascript
运行
复制
df.columns = [f'some_prefix{c}' for c in df]

方法链接

还可以在方法链接时添加*修复。若要添加后缀,请使用DataFrame.add_suffix

代码语言:javascript
运行
复制
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完成的。

代码语言:javascript
运行
复制
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批判

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

代码语言:javascript
运行
复制
df.some_method1().some_method2().add_*fix(...)

但是,add_prefix (和add_suffix)创建了整个数据文件的副本,只是为了修改头文件。如果您认为这是浪费,但仍然想要链,您可以调用pipe

代码语言:javascript
运行
复制
def add_suffix(df):
    df.columns += '_some_suffix'
    return df

df.some_method1().some_method2().pipe(add_suffix)
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34049618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档