为了账号安全,请及时绑定邮箱和手机立即绑定

根据另一列从熊猫数据框中一列中的每个列表中删除元素

根据另一列从熊猫数据框中一列中的每个列表中删除元素

鸿蒙传说 2022-07-12 18:21:41
我想根据 A 列从 B 列中删除列表中的值,想知道如何。鉴于:df = pd.DataFrame({    'A': ['a1', 'a2', 'a3', 'a4'],    'B': [['a1', 'a2'], ['a1', 'a2', 'a3'], ['a1', 'a3'], []]})我想:result = pd.DataFrame({    'A': ['a1', 'a2', 'a3', 'a4'],    'B': [['a1', 'a2'], ['a1', 'a2', 'a3'], ['a1', 'a3'], []],    'Output': [['a2'], ['a1', 'a3'], ['a1'], []]})
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

一种方法是通过DataFrame.apply对每一行应用过滤函数:

df['Output'] = df.apply(lambda x: [i for i in x.B if i != x.A], axis=1)


查看完整回答
反对 回复 2022-07-12
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

另一种解决方案使用iterrows():


for i,value in df.iterrows():

    try:

        value['B'].remove(value['A'])

    except ValueError:

        pass

print(df)

输出:


    A         B

0  a1      [a2]

1  a2  [a1, a3]

2  a3      [a1]

3  a4        []


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号