Pandas DataFrame DataFrame.isin() 函式
-
pandas.DataFrame.isin(values)
語法 -
示例程式碼:
DataFrame.isin()
以Iterable
為輸入 -
示例程式碼:
DataFrame.isin()
以字典為輸入 -
示例程式碼:
DataFrame.isin()
以Series
為輸入 -
示例程式碼:
DataFrame.isin()
以DataFrame
為輸入
pandas.DataFrame.isin(values)
函式檢查呼叫者 DataFrame 中的每個元素是否包含輸入的 values
中指定的值。
pandas.DataFrame.isin(values)
語法
DataFrame.isin(values)
引數
values |
iterable -list , tuple , set 等。 字典 Series DataFrame |
返回值
它返回一個與呼叫者 DataFrame
相同維度的布林值的 DataFrame
,表示每個元素是否包含輸入的 values
。
示例程式碼:DataFrame.isin()
以 Iterable
為輸入
當 Python iterable
為輸入時,Pandas DataFrame.isin()
函式檢查 DataFrame
中的每個值是否包含 iterable
中的任何值。
import pandas as pd
df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})
df = df.isin([200, 400])
print(df)
呼叫者 DataFrame
為
Sales Profit
0 100 200
1 200 400
輸出:
Sales Profit
0 False True
1 True True
這裡,200 和 400 存在於列表 [200,400]
中,因此,在返回的 DataFrame
中,原值為 200 和 400 的值為 True
。100
不在列表 [200,400]
中,因此,其位置的值返回 False
。
示例程式碼:DataFrame.isin()
以字典為輸入
如果輸入值型別是字典,isin()
函式不僅檢查值,而且檢查鍵值。只有當列名與鍵相同,且單元格值包含在字典的 value
中時,它才返回 True
。
import pandas as pd
df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})
df = df.isin({'Sales': [200, 400]})
print(df)
輸出:
Sales Profit
0 False False
1 True False
在第一個例子中,Profit
列的值都是 True
,但在這個例子中是 False
,因為列名與輸入字典中的鍵不同。
如果值包含在字典的值中–[200,400]
,它將返回 Sales
列中的 True
。
示例程式碼:DataFrame.isin()
以 Series
為輸入
如果輸入值型別是 Pandas 的 Series
,isin()
函式檢查每列元素是否與輸入的 Series
的同一索引中的值相同。
import pandas as pd
df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})
valueSeries = pd.Series([200, 400])
print(valueSeries)
df = df.isin(valueSeries)
print(df)
輸出:
0 200
1 400
dtype: int64
Sales Profit
0 False True
1 False True
Profit
列中的元素與輸入的 Series
中的元素元素相同,因此,該列中的兩個元素都返回 True
。
示例程式碼:DataFrame.isin()
以 DataFrame
為輸入
如果輸入值型別是 Pandas 的 DataFrame.isin()
函式檢查呼叫者 DataFrame
中的每個元素是否與輸入 DataFrame
中相同位置的元素相同。
當數值相同時返回 True
,如果不匹配則返回 False
。
import pandas as pd
df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})
print(df)
valueDf = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 300]})
print(valueDf)
df = df.isin(valueDf)
print(df)
輸出:
Sales Profit
0 100 200
1 200 400
Sales Profit
0 100 200
1 200 300
Sales Profit
0 True True
1 True False
位置 (1, 1)
的值返回 False
,因為呼叫者 DataFrame 和輸入 DataFrame 的值不同。
isin()
函式不僅從元素上檢查值,而且還檢查列名是否相同。如果列名不同,即使這兩個 DataFrames 中的值相同,它也返回 False
。Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn