每7行,获得第n行熊猫
问题描述:
我有一个df
像这样的是约1000行:每7行,获得第n行熊猫
0 1
0 1.345 2.456
1 2.123 3.564
2 0.023 3.548
3 3.457 2.456
4 1.754 3.564
5 0.905 3.548
6 3.674 7.543
7 9.443 6.4433...
它的组织方式是每7行构成一个数据的“设置”(数据不能在这里排序)。在每一个“组”的7行我想要得到的第一行的,所以我的新的数据帧将如下所示:
0 1
0 1.345 2.456
7 9.443 6.4433
我可以解决它通过创建,通过重复1-7 &过滤新列只有列...
0 1 groupby_col
0 1.345 2.456 1
1 2.123 3.564 2
2 0.023 3.548 3
3 3.457 2.456 4
4 1.754 3.564 5
5 0.905 3.548 6
6 3.674 7.543 7
7 9.443 6.4433 1...
然后...
df[df['groupby_col'] == 1]
有没有一种方法可以让我在大熊猫做到这一点,而无需创建一个额外的列然后过滤?
答
选项1:
In [54]: df.iloc[::7]
Out[54]:
0 1
0 1.345 2.4560
7 9.443 6.4433
选项2:
In [53]: df.iloc[np.arange(len(df))%7==0]
Out[53]:
0 1
0 1.345 2.4560
7 9.443 6.4433
答
df.loc[df.index%7==0]
Out[124]:
0 1
0 1.345 2.4560
7 9.443 6.4433
或者
df.groupby(df.index//7,as_index=False).first()
Out[128]:
0 1
0 1.345 2.4560
1 9.443 6.4433
通过一分钟打我!对于它的价值,你也可以使用df.ix [:: 7] – tnknepp
@tnknepp,谢谢! '.ix []' - 在现代Pandas版本中被弃用 – MaxU
不,谢谢你,我不知道.ix []已被弃用。我需要更新我的熊猫。你现在已经解决了你的帖子的两个问题。谢谢! – tnknepp