Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果达到特定条件,如何从数据帧中选择字段?_Python_Python 3.x_Pandas_Csv_Dataframe - Fatal编程技术网

Python 如果达到特定条件,如何从数据帧中选择字段?

Python 如果达到特定条件,如何从数据帧中选择字段?,python,python-3.x,pandas,csv,dataframe,Python,Python 3.x,Pandas,Csv,Dataframe,我有一个场景,我在一个csv文件中有一些数据,我检索了它并存储在一个数据框中。现在,我需要根据特定的条件遍历每一行。如果满足该条件,则需要检索该行的一个字段 例如: 我有一个数据框中与板球运动员相关的数据。现在我想选择击球率最高的球员的名字 有人能帮我解决这个问题吗 print("The best Batsman of the Tournament could possibly be: ", dataset['Names'].loc[(dataset['Average'] == ma

我有一个场景,我在一个csv文件中有一些数据,我检索了它并存储在一个数据框中。现在,我需要根据特定的条件遍历每一行。如果满足该条件,则需要检索该行的一个字段

例如: 我有一个数据框中与板球运动员相关的数据。现在我想选择击球率最高的球员的名字

有人能帮我解决这个问题吗

print("The best Batsman of the Tournament could possibly be: ",
      dataset['Names'].loc[(dataset['Average'] == max(dataset['Average'])) & (dataset['Innings'] >= 15)])
预期输出必须是具有最高聚合的玩家,如Virat Kohli等

我正在获取输出,但存在以下一些小错误: 本届锦标赛最好的击球手可能是:2名维拉特·科利 名称:名称,数据类型:对象


在这里,除了“Virat kohli”之外,我不想在“:”之后打印任何内容。

您很接近,但需要正确使用语法。使用:

print("The best Batsman of the Tournament could possibly be: ",
      dataset.loc[(dataset['Average'] == dataset['Average'].max()) & (dataset['Innings'] >= 15), ['Names']].iloc[0])

使用
dataset['Average'].max(
),而不是使用
max(dataset['Average'])
,因为它更快。另外,
loc
允许您指定所需的列,从而指定
['Names']
iloc
来检索第一个元素

如果您确定存在匹配项,则可以在
局中的条件之后使用
idxmax()

print("The best Batsman of the Tournament could possibly be: ",
  df.loc[df.loc[df.Innings>=15,'Average'].idxmax(),'Names'])

输出

The best Batsman of the Tournament could possibly be:  Virat Kohli

如果没有匹配的值,那么
idxmax
错误地返回第一个值,最好是将
next
iter
一起使用:

a =  dataset.loc[(dataset['Average'] == dataset['Average'].max()) & 
                 (dataset['Innings'] >= 15), 'Names']
print("The best Batsman of the Tournament could possibly be:
                               {}".format(next(iter(a), 'no match')))

当我尝试使用与上面相同的代码时,如下所示:
print(“本次比赛的主要小门接受者可能是:”,dataset.loc[dataset.loc[dataset['Wickets']]].idxmax(),'Names'])
我得到了以下错误:类型错误:此数据类型不允许使用缩减操作'argmax'。我不知道为什么@Vivek如果Wickets
列的数据类型是object,它将抛出错误,如果我理解正确,它应该是int。选中此项: