[英]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.