你好,我正在尝试将一个数据帧拆分为2个:第一个数据帧应该有所有的行首先出现,并保留所有出现在另一个表中。请看下面我正在寻找的输入数据框和输出数据框示例:我将在拆分之前按组和编号对数据进行排序
输入数据:
Group number
Short 1
Short 2
Moderate 55
Moderate 31
Tall 24
Tall 11
yellow 101数据帧1
Group Number
Short 1
Moderate 55
Tall 24
Yellow 101数据帧2
Group Number
Short 2
moderate 31
Tall 11请建议我如何解决这个问题。如果它的重复问题,请指出任何已提供的解决方案。
谢谢
发布于 2018-06-14 02:38:01
您可以对df1使用groupby和first:
df1 = df.reset_index().groupby('Group', as_index=False).first().set_index('index')对于df2,您需要:
df2 = df.drop(df1.index)发布于 2018-06-14 02:43:46
drop_duplicates可以用来保留第一次出现的内容,其余的可以通过排除这些索引来进行切片:
first_occ = df.drop_duplicates(subset='Group', keep='first')
rest = df[~df.index.isin(first_occ.index)]发布于 2018-06-14 02:50:16
我们可以利用这样一个事实,即您的df是这样排序的:
>>> 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 11https://stackoverflow.com/questions/50843993
复制相似问题