python-isin使用多个列值
发布时间:2022-04-15 16:55:13 231
相关标签: # node.js
我想分配True/False
如果数据框中的每一行包含我指定的列的特定值,则为该行指定值。例如,假设我有以下数据帧:
d = {
"col1": ["alpha", "beta", "alpha", "gamma", "alpha"],
"col2": [1, 2, 2, 3, 1],
"col3": ["a", "a", "b", "c", "d"],
}
df = pd.DataFrame(d)
df
col1 col2 col3
0 alpha 1 a
1 beta 2 a
2 alpha 2 b
3 gamma 3 c
4 alpha 1 d
我知道,如果我想使用单个列的值创建行掩码,我可以使用pandas的isin
。例如,如果我希望所有包含alpha
在里面col1
,我可以做到以下几点:df['col1'].isin(["alpha"])
.
0 True
1 False
2 False
3 False
4 True
如何获得类似的行为,但有多个列?如果我想设置所有具有alpha
在里面col1
和1
在里面col2
到True
还有其他一切False
?
我想有一个函数,它接受一个数据帧和一个字典作为输入。字典将有与列名和值对应的键,作为我想要的值列表。该函数返回一系列布尔值,其中每一行True
如果dataframe中的对应行包含字典中的值False
否则例如:
def multi_column_isin(df, d):
s = pandas Series where each row is True if it has values in d else False
return s
s = multi_column_isin(df, {"col1": ["gamma", "alpha"], "col2": [1, 3]})
s
0 True
1 False
2 False
3 True
4 True
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报