简体   繁体   English

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

[英]Remove element from every list in a column in pandas dataframe based on another column

I'd like to remove values in list from column B based on column A, wondering how.我想根据 A 列从 B 列中删除列表中的值,想知道如何。

Given:鉴于:

df = pd.DataFrame({
    'A': ['a1', 'a2', 'a3', 'a4'],
    'B': [['a1', 'a2'], ['a1', 'a2', 'a3'], ['a1', 'a3'], []]
})

I want:我想要:

result = pd.DataFrame({
    'A': ['a1', 'a2', 'a3', 'a4'],
    'B': [['a1', 'a2'], ['a1', 'a2', 'a3'], ['a1', 'a3'], []],
    'Output': [['a2'], ['a1', 'a3'], ['a1'], []]
})

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

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

Another solution using iterrows() :另一个使用iterrows()解决方案:

for i,value in df.iterrows():
    try:
        value['B'].remove(value['A'])
    except ValueError:
        pass
print(df)

Output:输出:

    A         B
0  a1      [a2]
1  a2  [a1, a3]
2  a3      [a1]
3  a4        []

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从pandas DataFrame的列中的每个列表中删除元素 - Remove element from every list in a column in pandas DataFrame 根据列中的值从 pandas dataframe 中的列表中删除元素 - Remove element from list in pandas dataframe based on value in column 根据另一列中的值从pandas列中的列表中提取元素 - Extracting element from a list in a pandas column based on the value in another column 基于另一列的 Pandas 系列列表中的 Select 元素 - Select element from list in Pandas Series based on another column 如何根据另一个 DataFrame 中的列更新 Pandas DataFrame 中的列 - How to update a column in pandas DataFrame based on column from another DataFrame 从 Pandas DataFrame 列中获取列表元素 - Get a list element from a Pandas DataFrame column 在另一列的列表中查找与 Pandas 数据框列最近的元素 - Find closest element of a pandas dataframe column in another column's list Select 列动态在 Pandas dataframe 基于列表或另一列中的值 - Select column dynamically in Pandas dataframe based on values in a list or another column 获取基于另一列的列值,其中包含pandas dataframe中的字符串列表 - get column value based on another column with list of strings in pandas dataframe Pandas - 拆分数据框中列的每个元素并添加到列表中 - Pandas - Split every element of column in dataframe and add to list
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM