【问题标题】:how to remove duplicates and leave one row containing value in another column pandas如何删除重复项并在另一列 pandas 中保留包含值的一行
【发布时间】:2022-11-15 04:34:19
【问题描述】:
ID CAR TYPE
10 Audi1 F
20 BMW1 nan
50 BMW2 nan
10 Audi2 nan
30 Mazda F
10 Audi3 F
20 BMW3 Z
20 BMW4 F
20 BMW5 A
40 KIA G
10 Audi4 A
10 Audi5 G
10 Audi6 nan

我想删除所有重复项(在 ID 列中),并只保留 TYPE 列中包含 F 的一行

它应该看起来像:

| ID | CAR   | TYPE |
|----|-------|------|
| 10 | Audi1  | F    |
| 20 | BMW   | F    |
| 30 | Mazda | F    |
| 40 | KIA   | G    |
| 50 | BMW   |  nan |

我需要已删除行的索引

【问题讨论】:

  • 试试我添加的逻辑并告诉我

标签: python pandas


【解决方案1】:

一步步做。 从CAR 列中删除所有数字并根据关键字进行过滤

df["mask"]=df["TYPE"].str.contains("F")
df=df.sort_values("mask", ascending=False).drop_duplicates(subset="ID", keep="first").drop(columns=["mask"])

print(df)

输出#测试

   ID    CAR TYPE
0  10  Audi1    F
4  30  mAZDA    F
7  20   BMW4    F
9  40    kIA    G
2  50   BMW2  NaN
>>> 

【讨论】:

  • 它不起作用keep='first'无论TYPE是否为F,都保留第一行
  • 啊,好吧,抱歉错过了 Know 测试
  • 试试这个,让我知道@AnnAc0nda
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 2017-12-17
  • 2016-07-26
相关资源
最近更新 更多