gpt4 book ai didi

python - 根据列中的值从 Pandas 数据框中删除行

转载 作者:行者123 更新时间:2023-12-03 23:03:22 33 4
gpt4 key购买 nike

假设我有一个包含“A”列和“B”列的数据框如何删除“A”列和“B”列相等的行,但不在同一行 .我只想删除“B”列等于“A”列的行
例如,第 4、8 和 9 行的“B”列等于第 2、3 和 5 行的“A”列。
我想删除第 4、8 和 9 行

    Column A         Column B                                                 
1 10 62
2 10 72
3 20 75
4 20 10
5 30 35
6 30 45
7 40 55
8 40 20
9 40 30
删除第 4、8 和 9 行,因为行中的 B 列等于第 2、3 和 5 行中的 A 列
预期输出
    Column A         Column B                                                 
1 10 62
2 10 72
3 20 75

5 30 35
6 30 45
7 40 55

需要删除第 4、8、9 行
添加其他详细信息:
A 列和 B 列在同一行中永远不会相等。
B 列中的多行可能在 A 列中具有匹配值。为了说明我已经扩展了数据框
对不起,如果我的原始行号不匹配。
总结一下需求。
多行将有 B 列与 A 列匹配,期望删除任何行中 B 列与 A 列匹配的所有行。
重申 A 列和 B 列在同一行中不相等

最佳答案

此解决方案假设 column A 中的唯一值当条件在 column B 中满足时,也应该删除.
我添加了第五行来测试不应删除同一行中的相等值的条件

   Column A  Column B
1 10 62
2 20 75
3 30 45
4 45 55
5 65 65
检查 column B 中的所有值如果他们在 column A isin 但排除具有相等值的行。
df[~(df['Column B'].isin(df['Column A']) & (df['Column B'] != df['Column A']))]
出去:
   Column A  Column B
1 10 62
2 20 75
4 45 55
5 65 65
  • 根据其他详细信息进行了更新,并且输出与预期结果相匹配。

  • import pandas as pd

    # sample
    df = pd.DataFrame({'colA': [10, 10, 20, 20, 30, 30, 40, 40, 40], 'colB': [62, 72, 75, 10, 35, 45, 55, 20, 30]})

    # display(df)
    colA colB
    0 10 62
    1 10 72
    2 20 75
    3 20 10
    4 30 35
    5 30 45
    6 40 55
    7 40 20
    8 40 30

    df[~(df['colB'].isin(df['colA']) & (df['colB'] != df['colA']))]

    [out]:
    colA colB
    0 10 62
    1 10 72
    2 20 75
    4 30 35
    5 30 45
    6 40 55

    关于python - 根据列中的值从 Pandas 数据框中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64198934/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com