gpt4 book ai didi

python - 查找某列具有该特定行的最大数量的次数

转载 作者:太空宇宙 更新时间:2023-11-03 19:40:59 25 4
gpt4 key购买 nike

我对 Python 还很陌生。我正在尝试为下面的数据集定义一个函数。

[演示.csv] https://docs.google.com/spreadsheets/d/1wJeAKlBnP3MBTlNykYBHP8D-V0X4ClpPWdJpddaetbQ/edit?usp=sharing

假设在给定的数据列中,单元格 1单元格 6 不相关。我想知道与该特定行的 cell 8cell 16 列中的数据相比,cell 7 出现最大值的次数。因此,理想情况下,代码应该检查与 cell 8cell 16 相比,cell 7 具有最大值的所有行,并打印该数字。

我正在做某件事,但我在中间迷失了自己。这是我的代码:

def ntimes(filename):
data=pd.read_csv(filename, sep=',')
cntcell7=0
t='cell7'
column_names = list(data.columns.values)
max_index = data.idxmax()
row_data = data.loc[max_index, column_names[-10:]]
final_column_name = row_data.idxmax()
for j in final_column_name:
if final_column_name==t:
cntcell7=cntcell7+1
return (cntcell7)
ntimes("demo.csv")

让我解释一下我试图做什么。我尝试使用 idxmax() 查找最后 10 列中每次出现最大值时的列名称,并对所有行进行迭代。然后计算列名称出现的次数。但是,我在这里肯定做错了什么。

理想情况下,对于给定的数据集,计数应返回为 4

最佳答案

可能不是选择多列的最简洁的方法,但这可行:

import pandas as pd

df = pd.DataFrame([
[34224, 47465, 758, 3326, 106, 142, 363, 104, 120, 121],
[5710, 2492, 117, 153, 100, 103, 173, 100, 103, 103],
[38737, 18950, 271, 928, 105, 118, 348, 103, 118, 127],
[5514, 3175, 128, 184, 100, 102, 165, 100, 102, 103],
[115285, 97418, 743, 4570, 111, 139, 670, 111, 172, 176],
[177423, 386661, 1312, 7201, 150, 229, 888, 134, 174, 224]
])

max_in_col0 = df[0] == df.iloc[:, range(0,10)].max(axis=1)
print(max_in_col0.value_counts()[True])

当然,这也有效,但我包含了上面的内容,因为您提到要选择一组特定的列:

max_in_col0 = df[0] == df.max(axis=1)
print(max_in_col0.value_counts()[True])

.iloc[:, range(0,10)] 选择第 0 至 9 列,因此在您的数据中,您可能会选择 .iloc[:, range(6, 16)].

关于python - 查找某列具有该特定行的最大数量的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60426742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com