首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pandas/python:组合使用replace和loc来替换某个范围内的部分列名

pandas/python:组合使用replace和loc来替换某个范围内的部分列名
EN

Stack Overflow用户
提问于 2021-08-28 11:57:14
回答 1查看 85关注 0票数 0

是否可以使用loc和replace函数来替换一定范围内的列的部分列名?我已经尝试在几个变体中组合了replace和loc函数,但是没有成功。或者,是否有任何替代方案可以更改列范围中的部分列名。

代码语言:javascript
运行
复制
df.columns = df.columns.str.replace('j','rep',regex=True)
df.loc[:, 10:]

非常感谢,致以问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-28 12:42:17

考虑包含以下列的数据帧

代码语言:javascript
运行
复制
>>> df.columns
Index(['foo', 'bar', 'baz', 'twobaz', 'threebaz'], dtype='object', name='col')

现在,假设您希望仅在最后两列中用字符串BAZ替换字符串baz,为此,一种可能的方法是选择最后两列,然后替换这些列中的字符串,并将它们与其余列组合起来

代码语言:javascript
运行
复制
df.columns = [*df.columns[:3], *df.columns[3:].str.replace('baz', 'BAZ', regex=True)]

>>> df.columns
Index(['foo', 'bar', 'baz', 'twoBAZ', 'threeBAZ'], dtype='object')

另一种可能的方法是使用数据帧的rename方法,使用rename方法的好处是它保留了索引名称(如果有的话)

代码语言:javascript
运行
复制
c = df.columns[3:]
df = df.rename(columns=dict(zip(c, c.str.replace('baz', 'BAZ', regex=True))))

>>> df.columns
Index(['foo', 'bar', 'baz', 'twoBAZ', 'threeBAZ'], dtype='object', name='col')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68964135

复制
相关文章

相似问题

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