在python中,每13行如何查找最大值?
问题是我有以下数据库:在python中,每13行如何查找最大值?,python,pandas,dataframe,for-loop,Python,Pandas,Dataframe,For Loop,问题是我有以下数据库: A B 1 5 2 6 3 7 4 1 5 4 6 3 7 5 8 8 9 5 假设此数据帧的名称为df 所以我想让代码,在这种情况下,每3行,我的情况13得到最大值,所以输出应该是这样的: 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.
A B
1 5
2 6
3 7
4 1
5 4
6 3
7 5
8 8
9 5
假设此数据帧的名称为df
所以我想让代码,在这种情况下,每3行,我的情况13得到最大值,所以输出应该是这样的:
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:“float”对象没有属性“iloc”
因此,欢迎您提出任何想法。谢谢您您只需执行以下操作,即可将您的列表分成3个部分
a = [[a[i], a[i+1], a[i+2]] for i in range(0, len(a), 3)]
其中a是包含B列值的列表。输出:
[[5, 6, 7], [1, 4, 3], [5, 8, 5]]
然后,找到每个块的最大值,并显示相应的索引。使用循环,可以遍历列表,找到值的索引,并打印其索引
slice = 0
for i in range(len(a)):
"row {} has a max of {} ".format(slice + a[i].index(max(a[i])), max(a[i]))
slice = slice + 3
在自定义groupID和idxmax和loc上使用groupby。使用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
你能解释一下你所说的马克斯罗是什么意思吗?因此,如果第0行和B列中的值为20,则第3行的最大值为20或7?如果理解正确,则为是,每三行的最大值是多少