首页 > 解决方案 > 删除列表中未包含的熊猫单元格值

问题描述

给定以下列表:

a = ['1', '2', '12', '5']

我正在尝试从与列表中的元素不匹配的 Dataframes 单元格中删除所有值。我确信列表中的每个值在数据框的每一行中只出现一次。

test = pd.DataFrame({'0' : ['1','4','5','5'],
           '1' : ['4','1','12','10'],
           '2' : ['10','12','4','2'],
           '3' : ['2','10','10','4'],
           '4' : ['5','2','2','1'],
           '5' : ['12','5','1','12']})


    0   1   2   3   4   5
0   1   4   10  2   5   12
1   4   1   12  10  2   5
2   5   12  4   10  2   1
3   5   10  2   4   1   12

重要的方面是维护数据框中列表中匹配数字的顺序。

结果应如下所示:

    0   1   2   3
0   1   2   5   12
1   1   12  2   5
2   5   12  2   1
3   5   2   1   12

提前致谢!

标签: python-3.xpandas

解决方案


df.apply(lambda x: pd.Series([i for i in list(x) if i in ' '.join(a)]), axis=1)

输出

   0   1  2   3
0  1   2  5  12
1  1  12  2   5
2  5  12  2   1
3  5   2  1  12

推荐阅读