相关文章推荐
独立的脆皮肠  ·  从Python ...·  1 周前    · 
独立的脆皮肠  ·  Free Automated ...·  9 月前    · 
独立的脆皮肠  ·  Little OpenCV bug - ...·  10 月前    · 
豪气的遥控器  ·  async/await ...·  6 小时前    · 
淡定的香烟  ·  Node.js ...·  6 小时前    · 
骑白马的口罩  ·  Task.Wait 方法 ...·  6 小时前    · 
酷酷的紫菜  ·  TypeScript ...·  6 小时前    · 

有时候需要删除数据表中某一列中包含指定字符串的行,可以使用pandas的字符串包含函数.str.contains:

pd.Series.str.contains(pat, case=True, flags=0, na=None, regex=True)
#pat是搜索字符,case表示是否区分大小写,flags表示是否传递给 re 模块的标志,regex=True则pat是一个正则表达式,regex=False表示pat是一个字符串

官网详细解释链接:https://pandas.pydata.org/docs/reference/api/pandas.Series.str.contains.html?highlight=contains#pandas.Series.str.contains

示例:提取pandas dataframe中’商品名称‘列包含’手机’字符的所有数据:

#提取含有指定字符的行
df2=df[df['商品名称'].str.contains(pat='手机',regex=False)]  #regex=True则pat是一个正则表达式,regex=False表示pat是一个字符串

删除pandas dataframe中’商品名称’列包含’手机’字符的所有数据:

#删除含有指定字符的行
df2=df.drop(df[df['商品名称'].str.contains(pat='手机',regex=False)].index,inplace=True)  #regex=True则pat是一个正则表达式,regex=False表示pat是一个字符串

这个df层层嵌套有点让人眼花缭乱,实际过程是先通过df[‘商品名称’].str.contains(pat=‘手机’,regex=False)] 找到‘商品名称’列中所有包括‘手机’的行,然后通过.index得到df行索引,再通过.drop函数删除df中包括这些索引的行。

另外一种情况是在运行中遇到上面方法报错:

ValueError: cannot index with vector containing NA / NaN values

研究了好久,又是上官网,又是找CSDN其他人的资料,发现都是上面的写法,最后发现问题出在没有加一个条件判断,在是否包含字符条件语句里加上==True,程序就运行正常了,改进后的代码如下:

#删除含有指定字符的行,注意在’regex=False)’后面加了‘==True’,也就是只有包含这个字符的行才返回行索引给drop函数。
df2=df.drop(df[df['商品名称'].str.contains(pat='手机',regex=False)==True].index,inplace=True)  #regex=True则pat是一个正则表达式,regex=False表示pat是一个字符串
                                    实现功能一:Python实现根据某列找到的关键字从原始数据过滤,然后匹配到关键词的数据保存到新的 CSV 文件;实现功能二:从原始数据删除删除的关键字”列找到的任何关键字的,然后将剩余数据保存到新的 CSV 文件
                                    Pandas过滤dataframe包含特定字符串数据假如有一列全是字符串dataframe,希望提取包含特定字符的所有数据,该如何提取呢?因为之前尝试使用filter,发现不通,最终找到这个得通的方法。举例说明:我希望提取所有包含'Mr.'的人名1、首先将他们进字符串化,并得到其对应的布尔:>>> bool = df.str.contains('Mr\.') #不要忘记正则表达式的写法...
df = pd.DataFrame([['AAA'], ['BBB'], ['CCC'],[123]])
# 删除含某特定字符串
df1 = df.drop(df[df[0].str.contains('A',na=False)])
# 删除含某特定数字的
df2 = df.drop(df[df[0] == 123].index)
                                    🔥【Python Pandas实战】🔥 筛选与删除DataFrame的特定与列!
🔍 使用布尔索引,你可以迅速定位到符合条件的。同时,🗑️ drop 方法则能帮助你轻松删除这些。不仅如此,我们还将展示如何筛选和删除特定的列,让你的数据处理更加灵活。
🚀最后,通过实战演练,你将学会如何在实际数据集应用这些技巧。
#Pandas #DataFrame #筛选特定 #删除特定 #布尔索引 #drop方法 #实战演练 #数据处理
                                    pandas使用str函数和contains函数删除dataframe单个指定字符串数据列包含特定字符串的数据(drop rowscontain a specific string)
                                    公众号:尤而小屋作者:Peter编辑:Peter本文给大家介绍的是如何使用Pandas来操作字符串数据。字符串是一种常见的数据类型,我们遇到的文本、json数据等都是属于字符串的范畴。Python内置了很多处理字符串的方法,这些方法为我们处理和清洗数据提供了很大的便利。python内置方法#1、自定义字符串
x="hellopython!"
x'hello python!'查看x的类型:...
                                    对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง。本例其实是筛选,如果需要保留,可以将筛选后的对象赋给自己即可。,这个办法其实不是按照删除,而是按照索引删除。如果index为3,则会将前4条记录都删除。也可以根据删除记录,比如删除第三。如果想取包含某些字符的记录,可以去掉~4、删除包含某些字符、文字的或者列。
 
推荐文章