首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于python拆分Dataframe的第一次出现

基于python拆分Dataframe的第一次出现
EN

Stack Overflow用户
提问于 2018-06-14 02:31:50
回答 4查看 453关注 0票数 1

你好,我正在尝试将一个数据帧拆分为2个:第一个数据帧应该有所有的行首先出现,并保留所有出现在另一个表中。请看下面我正在寻找的输入数据框和输出数据框示例:我将在拆分之前按组和编号对数据进行排序

输入数据:

代码语言:javascript
复制
Group               number

Short               1
Short               2
Moderate            55
Moderate            31
Tall                24
Tall                11
yellow              101

数据帧1

代码语言:javascript
复制
Group              Number
Short                1
Moderate            55
Tall                24
Yellow              101

数据帧2

代码语言:javascript
复制
Group           Number
Short             2
moderate          31
Tall              11

请建议我如何解决这个问题。如果它的重复问题,请指出任何已提供的解决方案。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-06-14 02:38:01

您可以对df1使用groupbyfirst

代码语言:javascript
复制
df1 = df.reset_index().groupby('Group', as_index=False).first().set_index('index')

对于df2,您需要:

代码语言:javascript
复制
df2 = df.drop(df1.index)
票数 4
EN

Stack Overflow用户

发布于 2018-06-14 02:43:46

drop_duplicates可以用来保留第一次出现的内容,其余的可以通过排除这些索引来进行切片:

代码语言:javascript
复制
first_occ = df.drop_duplicates(subset='Group', keep='first')

rest = df[~df.index.isin(first_occ.index)]
票数 1
EN

Stack Overflow用户

发布于 2018-06-14 02:50:16

我们可以利用这样一个事实,即您的df是这样排序的:

代码语言:javascript
复制
>>> df[df['Group'] != df['Group'].shift(1)]
      Group  number
0     Short       1
2  Moderate      55
4      Tall      24
6    yellow     101
>>> df[df['Group'] == df['Group'].shift(1)]
      Group  number
1     Short       2
3  Moderate      31
5      Tall      11
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50843993

复制
相关文章

相似问题

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