繁体   English   中英

Python 从 dataframe 中的列中删除部分字符串

[英]Python remove part of the string from column in a dataframe

您好,我正在研究 python。我从 csv 文件创建了一个 dataframe。 一列“名称”是一个文本列,在不同的地方有这个模式'(some_number + %'),例如:

“145 wefwignweon (100%) ,1rberbebe (50%) ,vwrbvwrbe (100%) ,140 ewggrrwrg”

我需要从这个列中删除,其中说:'(100%)','(100%),'(50%')在其他列中是不同的百分比值

import pandas as pd

path_to_dir="/Users/user/Documents/file/"
name='owner.csv'
df_owner = pd.read_csv(path_to_dir+name, encoding='windows-1252') 
#df_owner["name"] =  df_owner["name"] drop where says => (' (@some_number%)')

我如何创建一种正则表达式,以便在找到此类值的地方删除? 从 df_owner dataframe 的名称列中删除“( some_number + %)”

问候

您可以使用正则表达式\(\d+%\)

df = df[~df['name'].str.contains(r' \(\d+%\)', regex=True)]

捕获最多三位数的所有数字给出r'\d{1,3}'

但是你似乎也想要括号,它们和百分号必须被转义,所以这将是r'\(\d{1,3}\)\%' 然后,您可以将 null 字符串替换为lambda x: re.sub(r'\(\d{1,3}\)\%', '', x) 您可能还想将前导空格添加到正则表达式中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM