如何将多个列表合并为单个DataFrame,用1替换共同值(Python)
实现方法
步骤1:导入依赖库
首先需要导入pandas库,用于创建和处理DataFrame:
import pandas as pd
步骤2:定义原始列表
将你给出的三个列表定义好:
a = ["house","garden", "living room", "dog","cat"] b = ["cat","dog", "chicken"] c = ["house", "garden","bathroom"]
步骤3:构建目标DataFrame
- 先以列表
a的元素创建基础DataFrame,作为第一列 - 分别为
b、c列赋值:通过isin()判断元素是否在对应列表中,再转成整数(True→1,False→0)
完整代码:
import pandas as pd a = ["house","garden", "living room", "dog","cat"] b = ["cat","dog", "chicken"] c = ["house", "garden","bathroom"] # 创建基础DataFrame df = pd.DataFrame({'a': a}) # 添加b列:判断元素是否在b列表中,转成0/1 df['b'] = df['a'].isin(b).astype(int) # 添加c列:同理处理 df['c'] = df['a'].isin(c).astype(int) # 查看结果 print(df)
输出结果
运行代码后会得到如下格式的DataFrame:
| a | b | c |
|---|---|---|
| house | 0 | 1 |
| garden | 0 | 1 |
| living room | 0 | 0 |
| dog | 1 | 0 |
| cat | 1 | 0 |
代码说明
isin():用于检测DataFrame中的元素是否存在于指定列表中,返回布尔值序列astype(int):将布尔值(True/False)转换为整数类型,True对应1,False对应0
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

