我是Python的新手,我试图了解如何从数据框内的每个索引中选择n行,并构建仅包含选定行的新数据框。
我的df看起来像这样:
Col1 Col2 Col3 etc
A
A
A
A
B
B
B
B
我基本上会为每个索引取前两行:
Col1 Col2 Col3 etc.
A
A
B
B
我尝试使用for循环和iloc来执行此操作,如下所示,但是循环停止到索引A:
for i in df:
sel=df.iloc[:3]
我知道这是一个基本问题,但我读了更多书,对使用,应用,使用范围等感到迷惑
请帮助!谢谢
答案 0 :(得分:1)
如果要获取每个组的前两行,可以执行以下操作:
df.groupby('Col1').head(2)
答案 1 :(得分:0)
如果A,B等在索引中而不在第一列中,则@Chris的答案略有不同。您应该首先重设索引,使用group_by,head,重设索引并删除其名称:
df.reset_index().groupby('index').head(2).set_index('index').rename_axis(None)