新聞中心
Python中的isin()方法用于篩選出列表中存在于指定集合中的元素。
創(chuàng)新互聯(lián)公司始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)十余年累計(jì)超上千家客戶(hù)的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)整合營(yíng)銷(xiāo)推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶(hù),其中包括:成都三維植被網(wǎng)等企業(yè),備受客戶(hù)稱(chēng)揚(yáng)。
在Python的Pandas庫(kù)中,isin()是一個(gè)非常實(shí)用的函數(shù),主要用于篩選數(shù)據(jù),這個(gè)函數(shù)可以檢查DataFrame或Series對(duì)象中的值是否包含在給定的值序列中。
基本用法
isin()函數(shù)的基本用法非常簡(jiǎn)單,它接收一個(gè)列表作為參數(shù),然后返回一個(gè)布爾型的DataFrame或Series,其中的每個(gè)元素都表示原始DataFrame或Series中的相應(yīng)元素是否在給定的列表中。
假設(shè)我們有一個(gè)包含多個(gè)城市名稱(chēng)的DataFrame:
import pandas as pd
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']}
df = pd.DataFrame(data)
如果我們想要找出在這個(gè)DataFrame中哪些城市是在美國(guó)的前五大城市(按照人口排序),我們可以使用isin()函數(shù):
top_five_cities = ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'] result = df['City'].isin(top_five_cities)
在這個(gè)例子中,result將是一個(gè)布爾型的Series,表示每個(gè)城市是否在前五大城市中。
高級(jí)用法
除了基本用法之外,isin()函數(shù)還有一些高級(jí)用法。
1. 使用字典進(jìn)行篩選
如果你有一個(gè)字典,其中鍵是列名,值是要檢查的值的列表,你也可以使用isin()函數(shù)。
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
'State': ['New York', 'California', 'Illinois', 'Texas', 'Arizona']}
df = pd.DataFrame(data)
criteria = {'City': ['New York', 'Los Angeles'], 'State': ['Texas']}
result = df.isin(criteria)
在這個(gè)例子中,result將是一個(gè)布爾型的DataFrame,表示每行中的每個(gè)元素是否在相應(yīng)的列表中。
2. 使用正則表達(dá)式進(jìn)行篩選
isin()函數(shù)還支持使用正則表達(dá)式進(jìn)行篩選,你只需要將正則表達(dá)式作為字符串傳遞給isin()函數(shù)即可。
如果我們想要找出所有以"N"開(kāi)頭的城市,我們可以這樣做:
pattern = '^N' result = df['City'].str.contains(pattern)
在這個(gè)例子中,result將是一個(gè)布爾型的Series,表示每個(gè)城市的名稱(chēng)是否匹配給定的正則表達(dá)式。
相關(guān)問(wèn)題與解答
問(wèn)題1:isin()函數(shù)返回的是什么類(lèi)型的對(duì)象?
答:isin()函數(shù)返回的是一個(gè)布爾型的DataFrame或Series,其中的每個(gè)元素都表示原始DataFrame或Series中的相應(yīng)元素是否在給定的列表中。
問(wèn)題2:如何使用isin()函數(shù)來(lái)篩選出DataFrame中的特定行?
答:你可以先使用isin()函數(shù)生成一個(gè)布爾型的DataFrame,然后使用這個(gè)DataFrame來(lái)篩選原始的DataFrame。df[df['City'].isin(top_five_cities)]將返回一個(gè)新的DataFrame,其中只包含前五大城市。
問(wèn)題3:isin()函數(shù)是否可以接受字典作為參數(shù)?如果可以,如何使用?
答:是的,isin()函數(shù)可以接受一個(gè)字典作為參數(shù),字典的鍵應(yīng)該是列名,值應(yīng)該是要檢查的值的列表。df.isin({'City': ['New York', 'Los Angeles'], 'State': ['Texas']})將返回一個(gè)布爾型的DataFrame,表示每行中的每個(gè)元素是否在相應(yīng)的列表中。
問(wèn)題4:isin()函數(shù)是否可以使用正則表達(dá)式進(jìn)行篩選?如果可以,如何使用?
答:是的,isin()函數(shù)可以使用正則表達(dá)式進(jìn)行篩選,你只需要將正則表達(dá)式作為字符串傳遞給isin()函數(shù)即可。df['City'].str.contains('^N')將返回一個(gè)布爾型的Series,表示每個(gè)城市的名稱(chēng)是否匹配給定的正則表達(dá)式。
當(dāng)前名稱(chēng):python中isin用法
網(wǎng)站鏈接:http://www.dlmjj.cn/article/coghdho.html


咨詢(xún)
建站咨詢(xún)

