Pandas 数据表格删除符合条件的行的方法
大家都知道我们的数据表格组件使用的是 Pandas 库,很多同学也用过数据过滤的功能,可以通过 isin、isnull、match、startswith 等方法过滤出想要的数据,这两天有同学来问怎么去删除掉符合条件的行。。。。。遗憾的发现 pandas 并没有 isnotin 的这种方法 😂
找了个办法,对于不是非常大的数据量可行,数据量很大的情况下不知道效率如何
如下图为例,在通过 pandas 读出的 dataframe 中删除“产品代码”这一列中中包含“wj”的行
#原理就是循环筛选,发现有符合条件的行就使用pandas的drop方法删掉
import pandas as pd
#data是读取表格组件返回值传进来的参数
def drop_df(data):
for index,row in data.iterrows():
if 'wj' in row['产品代码']:
#axix=0代表删除行,=1代表删除列
#inplace=True表示原数据集对应的内存值直接改变,默认为False
data.drop(index,axis=0,inplace=True)
print(data)
return data
运行结果如下,大功告成!
个人感觉这个方法比较傻 😂,还未找到 pandas 直接过滤删除的方法,如果有知道的高人欢迎留言
另外 DataFrame 千万不要遍历
你可以这样:
当然方式 1 最佳
方法二我未验证,可以自己验证下
Dataframe 中, 系统自带方法 >apply> 遍历