给大家整理一篇相关的编程文章,网友郝风华根据主题投稿了本篇教程内容,涉及到pandas、、in、和、not、in、用法、pandas、、in、和、not、in、pandas in 和 not in 的用法相关内容,已被357网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。
pandas in 和 not in 的用法
pandas in 和 not in 的用法
经常在处理数据中从一个总数据中清洗出数据, 但是有时候需要把没有处理的数据也统计出来.
这时候就需要使用:
pandas.DataFrame.isin
DataFrame中的每个元素是否都包含在值中
例子:
如何实现SQL的等价物IN和NOT IN? 我有一个包含所需值的列表。下面是一个场景: df = pd.DataFrame({'countries':['US','UK','Germany','China']}) countries = ['UK','China'] # pseudo-code: df[df['countries'] not in countries]
之前的做法是这样:
df = pd.DataFrame({'countries':['US','UK','Germany','China']}) countries = pd.DataFrame({'countries':['UK','China'], 'matched':True}) # IN df.merge(countries,how='inner',on='countries') # NOT IN not_in = df.merge(countries,how='left',on='countries') not_in = not_in[pd.isnull(not_in['matched'])]
但上面这样做觉得很不好, 也翻了文档才找到比较好解决方式.
# IN something.isin(somewhere) # NOT IN ~something.isin(somewhere)
例子:
>>> df countries 0 US 1 UK 2 Germany 3 China >>> countries ['UK', 'China'] >>> df.countries.isin(countries) 0 False 1 True 2 False 3 True Name: countries, dtype: bool >>> df[df.countries.isin(countries)] countries 1 UK 3 China >>> df[~df.countries.isin(countries)] countries 0 US 2 Germany
ps:pandas实现in和 not in
pandas中经常会需要对某列做一些筛选,比如筛选某列里的不包含某些值的行,类似sql里的in和not in功能,那么怎么实现呢。
import pandas as pd columns = ['name','country'] index = [1,2,3,4] row1 = ['a','China'] row2 = ['b','UK'] row3 = ['c','USA'] row4 = ['d','HK'] df = pd.DataFrame([row1,row2,row3,row4], index=index, columns=columns) df chinese = ['China','HK']
那么想查看数据中是chines的,
df[df.country.isin(chinese)]
查看数据中不是chines的,
到此这篇关于pandas 实现 in 和 not in 的用法及心得的文章就介绍到这了,更多相关pandas in 和 not in 的用法内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!