我有一个数据集:
import pandas as pd
data = [
('A', 'X'),
('A', 'X'),
('A', 'Y'),
('A', 'Z'),
('B', 1),
('B', 1),
('B', 2),
('B', 2),
('B', 3),
('B', 3),
('C', 'L-7'),
('C', 'L-9'),
('C', 'L-9'),
('T', 2020),
('T', 2020),
('T', 2025)
]
df = pd.DataFrame(data, columns=['ID', 'SEQ'])
print(df)
我想创建一个关键字分组ID和SEQ,以便 Select 每个ID组中每个不同SEQ的前2行
例如,ID A按数据集的顺序具有3个不同的关键字"A X"、"A Y"和"A Z".前两个关键字是"A X"和"A Y",因此我必须 Select 每个关键字的前两行(如果可用
"A X","A X","A Y"为什么?因为"A-Z"是另一个关键字.
我try 使用Groupby和Head函数,但我找不到实现此特定结果的方法.有没有人能给我一个解决方案,或者给我指个方向?
(df
.groupby(['ID','SEQ'])
.head(2)
)
但正在削减原始数据集,我想知道你们是否可以帮助我解决这个问题使用方法更改,因为这是我在Pandas 中更喜欢的风格,提前谢谢
最终正确的输出是