どのように私はPythonで最大値ごとに13行を見つけるの周りに行きますか?

パンダINC:

事はあるので、私が持っていることは、次のデータ・ベースを言うことができます:

A B
1 5
2 6 
3 7
4 1
5 4
6 3
7 5 
8 8 
9 5

このデータフレームの名前はDFであると言うことができます

私は、この場合(私の場合13)内のすべての3行は最大を取得するために、そうプットからこのようsomehtingされるというコードをしたいです:

row 3 has a max of 7 
row 5 has a max of 4 
row 8 has a max of 8 

私はそのために考えていた。このような何かをしました

count = 0
count1 = 3
for vals in df[B]:
    max = max(vals.iloc[count:count1])
    count = count + 3
    count1 = count1 + 3
    print(max)

しかし、これやって、私ははAttributeErrorを得る:「フロート」オブジェクトが属性「ILOC」がありません

だから、任意のアイデアを歓迎しているありがとう

アンディ・L.:

使用しgroupbyたカスタムグループIDとにidxmaxloc使用nあなたがグループ化したい行数として

n = 3
df_out = df.loc[df.groupby(np.arange(len(df)) // n).B.idxmax()]

Out[1201]:
   A  B
2  3  7
4  5  4
7  8  8

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=21458&siteId=1