有时候需要删除数据表中某一列中包含指定字符串的行,可以使用pandas的字符串包含函数.str.contains:
pd.Series.str.contains(pat, case=True, flags=0, na=None, regex=True)
官网详细解释链接: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)]
删除pandas dataframe中’商品名称’列包含’手机’字符的所有数据:
df2=df.drop(df[df['商品名称'].str.contains(pat='手机',regex=False)].index,inplace=True)
这个df层层嵌套有点让人眼花缭乱,实际过程是先通过df[‘商品名称’].str.contains(pat=‘手机’,regex=False)] 找到‘商品名称’列中所有包括‘手机’的行,然后通过.index得到df行索引,再通过.drop函数删除df中包括这些索引的行。
另外一种情况是在运行中遇到上面方法报错:
ValueError: cannot index with vector containing NA / NaN values
研究了好久,又是上官网,又是找CSDN其他人的资料,发现都是上面的写法,最后发现问题出在没有加一个条件判断,在是否包含字符条件语句里加上==True,程序就运行正常了,改进后的代码如下:
df2=df.drop(df[df['商品名称'].str.contains(pat='手机',regex=False)==True].index,inplace=True)
实现功能一: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、删除包含某些字符、文字的行或者列。