isin() 以及.loc[ ]的使用


提示:以下是本篇文章正文内容,下面案例可供参考

一、问题

import pandas as pd

# 假设的 embeddingf_matrix,包含一些药物和疾病的嵌入向量
embeddingf_matrix = {
    'aspirin': [0.1, 0.2, 0.3],
    'warfarin': [0.4, 0.5, 0.6],
    'thromboembolism': [0.7, 0.8, 0.9],
    'angina': [0.1, 0.1, 0.1]
}

# 示例 DataFrame,包含药物、疾病和一个标签列
data = {
    'drug': ['aspirin', 'ibuprofen', 'warfarin', 'aspirin'],
    'disease': ['angina', 'headache', 'thromboembolism', 'thromboembolism'],
    'label': [12, 8, 15, 20]
}
drug_disease_pd = pd.DataFrame(data)

drug_disease_pd = drug_disease_pd.loc[(drug_disease_pd['drug'].isin(embeddingf_matrix))&(drug_disease_pd["disease"].isin(embeddingf_matrix)), :]

在这里插入图片描述
解释:drug_disease_pd[‘drug’].isin(embeddingf_matrix.keys()) 生成一个布尔序列,标示每个 drug 是否在 embeddingf_matrix 的键中。
drug_disease_pd[‘disease’].isin(embeddingf_matrix.keys()) 生成一个布尔序列,标示每个 disease 是否在 embeddingf_matrix 的键中。
然后使用 & 操作符组合这两个条件,选择同时满足两个条件的行。
结果是那些药物和疾病都存在于 embeddingf_matrix 中的记录被选中

二、isin()的使用

isin()方法用于过滤数据框(DataFrame)或序列(Series)中的值,仅保留在给定列表中出现的值。
https://blog.csdn.net/qq_41813454/article/details/136422835

三、loc[ ]的使用

.loc[ ] 在 pandas 中是一个非常强大的索引器,可以根据布尔值进行筛选。这是一种常用的方法来基于条件选择 DataFrame 中的数据行。当你传递一个布尔序列到 .loc[] 时,它会返回所有对应为 True 的行
根据布尔值进行筛选:

import pandas as pd

# 创建一个示例 DataFrame
data = {'age': [25, 30, 35, 40, 45],
        'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward']}
df = pd.DataFrame(data)

# 创建一个布尔序列,选择年龄大于 30 的行
condition = df['age'] > 30

# 使用.loc[]根据布尔序列筛选
filtered_df = df.loc[condition]
print(filtered_df)
输出结果:
   age     name
2   35  Charlie
3   40    David
4   45   Edward
或者也可以:
# 直接在.loc[]中使用条件
filtered_df = df.loc[df['age'] > 30]
print(filtered_df)
# 也可以使用逻辑运算符(如 &(和)、|(或))来结合多个条件、
filtered_df = df.loc[(df['age'] > 30) & (df['name'].str.startswith('D'))]
print(filtered_df)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值