首页 > 解决方案 > 如何根据数据框单元格中的外观制作新单元格

问题描述

如果值在具有数组类型的现有列中并且另一列与另一个条件匹配,我想在数据框中创建新列。数据集:

    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)

标签: pandasnumpy

解决方案


你可以试试:

df['new'] = ((df.apply(lambda x : 22 in x.loto , axis = 1)) & \
             (df.name =='Jason')).astype(int)

即使将列表存储在数据框中不是一个好主意


推荐阅读