python - 基于可变长度从数据框列中提取字符串
问题描述
我对 python 非常陌生,并试图运行一个非常简单的任务,在该任务中,我在填充有字符串的数据框列中找到一个特定字符,然后删除右侧的所有字符。我想到的方法是创建一个新列,其中出现该字符串的位置,然后将第一列从 0 过滤到第一次出现的列的长度
df['CharIndex'] = df['String Column'].str.find("(",0)
df['Updated Column']=df['StringColumn'].str[0:df['CharIndex']]
索引列很好,然后重新格式化列完全 NaN。任何提示将不胜感激
编辑以显示我正在尝试做的事情,如果有更好的方法:所以想法是获取一个字符串列,找到特殊字符的索引,然后创建一个更新的列
+-------------------+------------+-----------------+
| String Column | CharIndex | Updated Column |
+-------------------+------------+-----------------+
| Hello( World | 5 | Hello |
+-------------------+------------+-----------------+
解决方案
尝试使用拆分并将值分配给新列
df['update_column'] = df['String Column'].str.split('\(',expand=True)[0]
print(df)
String Column CharIndex Updated Column update_column
0 Hello( World 5 Hello Hello
推荐阅读
- java - 升级 Neo4J 3.3.4 -> 3.4.0 缺少依赖“com.sun.jersey.multipart.FormDataParam”,替换是什么?
- ruby-on-rails - 导轨 | 根据用户选择设置cookies
- python - 条件满足高精度后python延迟不阻塞
- odoo - 如何在现有组之后添加新组
- python - Django-如何查看子类的通用视图
- php - 如何从 WordPress 数据库中的 BLOB 列中检索数值数据
- ruby-on-rails - 在渲染路由之前知道为什么请求在 Rails 应用程序中很慢
- html - 如何让动画不卡顿并永远运行?
- javascript - 浏览器的反应不同