首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas:根据行值删除重复项

Pandas:根据行值删除重复项
EN

Stack Overflow用户
提问于 2019-10-22 00:02:17
回答 3查看 507关注 0票数 3

我有一个数据帧,我想根据不同的条件删除重复的数据...

代码语言:javascript
复制
        A      B
  0     1     1.0
  1     1     1.0
  2     2     2.0
  3     2     2.0
  4     3     3.0
  5     4     4.0
  6     5     5.0
  7     -     5.1
  8     -     5.1
  9     -     5.3

我想删除列A中除带有"-“的行之外的所有重复项。在此之后,我希望删除列A中的重复项,并根据列B的值使用"-“作为值。给定输入数据帧,这将返回以下内容:

代码语言:javascript
复制
        A      B
  0     1     1.0
  2     2     2.0
  4     3     3.0
  5     4     4.0
  6     5     5.0
  7     -     5.1
  9     -     5.3

我有以下代码,但对于非常大量的数据来说效率不是很高,我如何改进这一点……

代码语言:javascript
复制
 def generate(df):
     str_col = df[df["A"] == "-"]

     df.drop(df[df["A"] == "-"].index, inplace=True)

     df = df.drop_duplicates(subset="A")

     str_col = b.drop_duplicates(subset="B")

     bigdata = df.append(str_col, ignore_index=True)

     return bigdata.sort_values("B")
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-22 00:05:16

duplicatedeq

代码语言:javascript
复制
df[~df.duplicated('A')            # keep those not duplicates in A
   | (df['A'].eq('-')             # or those '-' in A
      & ~df['B'].duplicated())]   # which are not duplicates in B

输出:

代码语言:javascript
复制
   A    B
0  1  1.0
2  2  2.0
4  3  3.0
5  4  4.0
6  5  5.0
7  -  5.1
9  -  5.3
票数 7
EN

Stack Overflow用户

发布于 2019-10-22 00:14:14

df.drop_duplicates(subset=['A', 'B'])

给定一组完整的数据:

代码语言:javascript
复制
   A    B  C
0  1  1.0  0
1  1  1.0  1
2  2  2.0  2
3  2  2.0  3
4  3  3.0  4
5  4  4.0  5
6  5  5.0  6
7  -  5.1  7
8  -  5.1  8
9  -  5.3  9

结果:

代码语言:javascript
复制
   A    B  C
0  1  1.0  0
2  2  2.0  2
4  3  3.0  4
5  4  4.0  5
6  5  5.0  6
7  -  5.1  7
9  -  5.3  9
票数 2
EN

Stack Overflow用户

发布于 2019-10-22 00:16:13

groupby + head

代码语言:javascript
复制
df.groupby(['A','B']).head(1)
Out[7]: 
   A    B
0  1  1.0
2  2  2.0
4  3  3.0
5  4  4.0
6  5  5.0
7  -  5.1
9  -  5.3
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58490071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档