簡體   English   中英

根據列中的值從熊貓數據框中刪除行

[英]Dropping rows from pandas dataframe based on value in column(s)

假設我有一個包含“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 B滿足條件時,也應刪除column A中的唯一值。

我添加了第五行來測試不應刪除同一行中的相等值的條件

   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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM