python - 在包含列表的 Pandas 列中查找字符串
问题描述
我对 Pandas 还很陌生,对一个项目真的很困惑。
我有一个看起来像这样的 Pandas 数据框:
ID | 零售商 |
---|---|
ID_1 | [“零售商 1”、“零售商 2”、“零售商 3”] |
ID_2 | [“零售商 1”,“零售商 2”] |
我的目标是:
- 遍历所有可能的零售商列表。
- 为每个可能的零售商创建一个列
- 如果当前零售商在该行的零售商列表中,则应将其编码为 1
- 如果该零售商不在列表中,则应将其编码为 0
以零售商 3 为例:
ID | 零售商 | 零售商 3 |
---|---|---|
ID_1 | [“零售商 1”、“零售商 2”、“零售商 3”] | 1 |
ID_2 | [“零售商 1”,“零售商 2”] | 0 |
希望这是有道理的。
解决方案
这是一种方法:
import pandas as pd
df = pd.DataFrame({'ID': {0: 'ID_1', 1: 'ID_2'},
'Retailers': {0: ["retailer 1", "retailer 2", "retailer 3"],
1: ["retailer 1", "retailer 2"]},
'retailer 3': {0: 1, 1: 0}})
# get unique retailers
retailers = set(df['Retailers'].sum())
# create variables
for r in retailers:
df[r] = df['Retailers'].apply(lambda x: r in x).astype(int)
推荐阅读
- javascript - 来自异步等待调用的响应的数组长度为 0
- computational-geometry - NURBS 面片和曲面之间的区别
- android - 如何将我的应用显示为下载器
- javascript - 使 contenteditable="true" div 具有有效和无效状态
- python - Django 未能为 python-ldap 构建轮子
- rendering - 如何从 Open Street Maps 获取/处理有关道路的多边形数据
- swift - Swift 中的时间排序
- ios - 无法获取崩溃日志的原因:IOS 应用程序在初始启动时崩溃
- html - Jinja & Wtforms - 检查是否定义了 html 属性
- python-3.x - OutOfRangeError(参见上面的回溯):RandomShuffleQueue '_1 总是出现..,为什么?