首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python在系列复制中第一次下降

Python在系列复制中第一次下降
EN

Stack Overflow用户
提问于 2018-01-05 18:50:21
回答 4查看 1.3K关注 0票数 4

什么是最毕达通的方式,以放弃唯一的第一个,在一系列的重复?

我有个数据:

代码语言:javascript
复制
Group    Value
  a        0
  a        1
  a        2
  b        6
  b        7
  b        8

我希望得到以下结果:

代码语言:javascript
复制
Group    Value
  a        1
  a        2
  b        7
  b        8

drop_duplicates根据设置的方式保留第一个或最后一个项。我想删除第一次出现的地方有一个重复,并保留其余的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-01-05 18:52:46

使用duplicated()创建布尔掩码并在此基础上进行筛选:

代码语言:javascript
复制
df[df.Group.duplicated()]

#Group  Value
#1   a      1
#2   a      2
#4   b      7
#5   b      8

默认情况下,duplicated掩码重复,除非第一次出现为True:

代码语言:javascript
复制
df.Group.duplicated()

#0    False
#1     True
#2     True
#3    False
#4     True
#5     True
#Name: Group, dtype: bool

为了保持每组边缘情况下的一行(不再那么有效):

代码语言:javascript
复制
df[df.Group.duplicated() | df.Group.groupby(df.Group).transform('count').eq(1)]

# Group Value
#1    a     1
#2    a     2
#4    b     7
#5    b     8

或者:

代码语言:javascript
复制
df[df.Group.groupby(df.Group).transform(lambda x: (x.size == 1) | x.duplicated())]
# Group  Value
#1    a      1
#2    a      2
#4    b      7
#5    b      8
票数 9
EN

Stack Overflow用户

发布于 2018-01-05 18:56:26

If it is unique row , you want to keep it

代码语言:javascript
复制
df.groupby('Group').Value.apply(lambda x : x.iloc[1:] if len(x)>1 else x).reset_index('Group')
Out[144]: 
  Group  Value
1     a      1
2     a      2
4     b      7
5     b      8
6     c     11

数据输入

代码语言:javascript
复制
df
Out[138]: 
  Group  Value
0     a      0
1     a      1
2     a      2
3     b      6
4     b      7
5     b      8
6     c     11
票数 2
EN

Stack Overflow用户

发布于 2018-01-05 19:13:28

查找第一行的索引,并使用drop删除它。谢谢温在回答中给出的通知,我们应该保留没有重复的行,我从他/她的方法中学习选择有重复的组。

代码语言:javascript
复制
grouped = df.reset_index().groupby("Group")["index", "Value"]
first_rows = grouped.apply(lambda x: x.iloc[0] if len(x) > 1 else None).dropna()
index_first_rows = first_rows["index"]
df.drop(index_first_rows, axis="index")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48119592

复制
相关文章

相似问题

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