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
。