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