pandas - 如何根据数据框单元格中的外观制作新单元格
问题描述
如果值在具有数组类型的现有列中并且另一列与另一个条件匹配,我想在数据框中创建新列。数据集:
name loto
0 Jason [22]
1 Molly [222]
2 Tina [232]
3 Jake [223]
4 Amy [73, 1, 2, 3]
如果name=="Jason"
并且loto
有 22new=1
我尝试使用np.where
,但在检查数组中的元素时遇到问题。
import numpy as np
import pandas as pd
data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'loto': [[22], [222], [232], [223], [73,1,2,3]]}
df = pd.DataFrame(data, columns = ['name', 'loto'])
df['new'] = np.where((22 in df['loto']) & (df[name]=="Jason"), 1, 0)
解决方案
你可以试试:
df['new'] = ((df.apply(lambda x : 22 in x.loto , axis = 1)) & \
(df.name =='Jason')).astype(int)
即使将列表存储在数据框中不是一个好主意
推荐阅读
- python - Python 追加函数和列表
- algorithm - “流压缩算法”有官方名称吗?
- microsoft-teams - 有没有办法从 Microsoft Teams 获取消息的已读回执信息?
- python - 使用 Openpyxl 编写时将数据转换为日期类型
- reactjs - Luxon 只为 Safari 14 浏览器创建未来而不是过去的日期
- python - KeyError:在使用 OpenAI stable-baselines3 和健身房尝试多智能体强化学习时出现“观察”
- ruby - Ruby 安装 (2.1.2) 在 macOS Big Sur(11.2.3) 中失败
- visual-c++ - 未找到适用于 Visual Studio 2015 的 Visual C++ 可再发行组件的 MSM 文件?
- python - 如何打印带有缩进的字符串?
- scala - 在数据集和数据帧上使用 Spark 中的自定义类