pandas.isin(list)

问题场景:

有一个csv700w+条数据,一个loss数据表,

,# 问题描述:

想着用两个set相减获得去取缺失值的list,然后再遍历获取df数据


原因分析:

结果datafram数据太大,遍历太慢,所以想着会不会有更好的方法,不用遍历就可以获得想要结果


解决方案:

dfnew = df[df[‘REGNO’].isin(list3)]

参考:https://blog.csdn.net/lzw2016/article/details/80472649


新增,由于后面再次处理的时候,忘记前一次是怎么处理,结果吃大亏,这里全部记录一下

import pymysql
import pandas as pd

eng = pymysql.connect(host='xx', user='root', password='xx', database='xx')
eng1 = pymysql.connect(host='x', user='root', password='xx', database='xx')
cursor = eng.cursor()

sql = 'select REGNO from xx'
df_loss = pd.read_sql(sql, eng)
# print('loss len is :{}'.format(len(df_loss)))
loss_list = df_loss['REGNO'].values.tolist()
print('loss len is :{}'.format(len(loss_list)))
set_loss = set(loss_list)

df_half = pd.read_csv('half_Image_data_2.csv', low_memory=False)
print('half len is :{}'.format(len(df_half)))
df_list = df_half['REGNO'].values.tolist()
set_half = set(df_list)
set_c = set_half - set_loss
list_new = list(set_c)
print('list_new is :{}'.format(list_new[0]))
# sql_new = 'select REGNO,IMAGETYPE from  where REGNO in {}'.format(list_new)
df_new = df_half['REGNO'].isin(list_new)
# df_new = pd.read_sql(sql_new, eng1)
df_new.to_csv('drop_loss_half_2.csv', index=0)
print('处理结束')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pandasisin()方法是一个用于判断数据是否与给定值相等的方法。它可以同时判断数据是否与多个值相等,若与其中的某个值相等则返回True,否则返回False。这个方法既可以用于Series类型的数据,也可以用于DataFrame类型的数据。在使用isin()方法时,需要注意参数的类型和传入的值。当isin()方法接收到的参数类型为Series和DataFrame时,需要保证索引和列名与原数据相同才能进行对比。isin()方法返回的结果为True或False,因此可以与loc方法连用,对数据进行筛选。此外,在过去的Pandas版本中,isin()方法还有一个逆函数notin(),但在最新版本中,这个函数已经被删除,可以使用~达到同样的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Learning Pandas](https://download.csdn.net/download/l1505624/10155097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Pandas:isin()用法及其注意事项](https://blog.csdn.net/yeshang_lady/article/details/112207877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值