python-3.x - 编辑熊猫列中的值-我的方法不起作用
问题描述
在过去的几个小时里,我一直在搜索 SO,并且尝试了好几次,但都没有高兴地做一些非常简单的事情。我的数据框中有一列如下所示:
Name
AEMULUS [S]
AIM
ANCOMLB [S]
APPASIA [S]
ASDION [S]
ASIAPLY [S]
我只想删除“[S]”
这是我为删除讨厌的“[S]”而编写的函数
def column_fix(df):
"""removes '[s]' from name column"""
df.Name.str.split()[0]
return df
解决方案
你的方法几乎奏效了。无需将其包装到函数中。
假设您只是想删除空格后的任何内容,您可以这样做:
df['Name'] = df['Name'].str.split(expand=True)[0]
你的结果:
>>> df['Name']
0 AEMULUS
1 AIM
2 ANCOMLB
3 APPASIA
4 ASDION
5 ASIAPLY
Name: Name, dtype: object
对于更通用的方法,要简单地删除空格后跟方括号中的字母的所有实例,请使用带有 的正则表达式replace
:
df['Name'].replace(r'\s\[\w\]', '', regex=True, inplace=True)
推荐阅读
- python - 模拟内置循环功能
- sql-server - 如何与 Laravel6 建立 ODBC 连接?
- ruby-on-rails - 向迁移模型添加实例
- xml - 用 Maven 配置文件替换 ${}
- sql - 使用日期格式将值简单地插入表中
- git - 我可以用 keybase.io 签署 git 提交吗?
- python - 在 Python 3 中使用正确编码从 CSV 文件加载不同类型的数据
- angular - 错误:无法匹配任何路由。URL 段:Ionic Angular App 中的“null”
- c++ - 无法编译 std::reduce 调用,而 std::accumulate 调用编译相同的参数
- android - FIREBASE - 从 Play 商店更新后删除和创建的实时数据库记录