如何基于哑变量值在Python中生成动物/属性列表?
解决方案
首先构造示例中的DataFrame:
import pandas as pd df = pd.DataFrame({ "名称": ["狗", "鱼"], "毛发": [1, 0], "眼睛": [1, 1] })
a) 生成具备毛发的动物列表
筛选毛发列值为1的行,提取对应名称列并转为列表:
has_fur_animals = df[df["毛发"] == 1]["名称"].tolist() # 输出结果:['狗']
b) 生成狗具备的所有属性列表
先定位名称为"狗"的行数据,再筛选该行中值为1的属性列(排除名称列),最后转为列表。这里提供两种写法:
写法1:链式调用
dog_attributes = df[df["名称"] == "狗"].drop("名称", axis=1).columns[df[df["名称"] == "狗"].drop("名称", axis=1).iloc[0] == 1].tolist()
写法2:列表推导式(更直观)
# 获取狗的行数据 dog_row = df[df["名称"] == "狗"].iloc[0] # 遍历属性列,筛选值为1的列名 dog_attributes = [col for col in df.columns if col != "名称" and dog_row[col] == 1] # 输出结果:['毛发', '眼睛']
内容的提问来源于stack exchange,提问作者Mattyboy
相关产品推荐
相关产品推荐

