基于首次发生的python拆分数据帧

2024-09-29 19:01:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

输入数据:

Group               number

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

数据帧1

^{pr2}$

数据帧2

Group           Number
Short             2
moderate          31
Tall              11

请告诉我如何解决这个问题。如果问题重复,请指出已经提供的任何解决方案。在

谢谢


Tags: 数据示例number排序group请参阅解决方案编号
3条回答

drop_duplicates可用于保留第一个实例,其余的可以通过排除这些索引进行切片:

first_occ = df.drop_duplicates(subset='Group', keep='first')

rest = df[~df.index.isin(first_occ.index)]

我们可以利用这样一个事实,你的数据框是这样排序的:

>>> 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

您可以对df1使用groupbyfirst

df1 = df.reset_index().groupby('Group', as_index=False).first().set_index('index')

对于df2,则执行以下操作:

^{pr2}$

相关问题 更多 >

    热门问题