Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 pandas.nlargest()-与重复的索引值混淆_Python_Pandas_Dataframe - Fatal编程技术网

Python pandas.nlargest()-与重复的索引值混淆

Python pandas.nlargest()-与重复的索引值混淆,python,pandas,dataframe,Python,Pandas,Dataframe,我将以下示例数据框定义为: df1 = pandas.DataFrame(data = {"Age":[28, 3, 32, 18], "Student":[False, True, False, False]}, index = ["Jack", "Sam", "Nate", "Jack"]) 输出如下 如果我想提取年龄值最大的两行,我使用pandas.nlargest(2,“年龄”),输出有三行,而不是两行,如下所示: 如果我使用pandas.nlargest(4,“Age”)尝试4个

我将以下示例数据框定义为:

df1 = pandas.DataFrame(data = {"Age":[28, 3, 32, 18], "Student":[False, True, False, False]}, index = ["Jack", "Sam", "Nate", "Jack"])
输出如下

如果我想提取年龄值最大的两行,我使用pandas.nlargest(2,“年龄”),输出有三行,而不是两行,如下所示:

如果我使用pandas.nlargest(4,“Age”)尝试4个最大的年龄值,结果会更加混乱,如下所示:

df1 = pandas.DataFrame(data = {"Age":[28, 3, 32, 18], "Student":[False, True, False, False]}, index = ["Jack", "Sam", "Nate", "Jack"])


我不明白背后的原因

问题解决了。我使用的Pandas版本是0.19.1,在我将其更新为0.19.2并重新执行代码之后,它就工作了

谢谢大家!

在中修复了以下错误:

  • 当索引具有重复值时,
    DataFrame.nlagest
    DataFrame.nsmalest
    中出现错误()

注意:在计数函数上应用NLAGEST函数时,该函数在NLAGEST函数上运行

我正在使用Excel电子表格,并且NLAGEST也存在此问题。我也在使用0.19.2,但仍然存在此问题。索引值在我的工作表中重复。但是,除非单元格值也是重复的,否则没有问题。例如:

new = dataframe.nlargest(5, "DEF") -- only taking 5 largest values
print(new.loc[:, "DEF"])
印刷品:

Player
Player 1    39.0
Player 2    36.0
Player 3    36.0
Player 2    36.0
Player 3    36.0
Player 4    34.0      
Player 1    34.0
Player 5    34.0
Player 4    34.0
Player 1    34.0
PLayer 5    34.0
Name: DEF, dtype: float64
--我得到的是11个值,而不是5个。。。它应该告诉我:

Player
Player 1    39
Player 2    36
Player 3    36
Player 4    34
Player 1    34
但是如果单元格值不重复,NLAGEST对我有效。。例如:

new = dataframe.nlargest(5, "DEF") -- only taking 5 largest values
print(new.loc[:, "DEF"])
new = all_rounds.nlargest(5, "Frags")
print(new.loc[:, "Frags"])

prints:
Player
Player 1    117.0
Player 2    112.0
Player 2    105.0
Player 3    103.0
PLayer 4    102.0
Name: Frags, dtype: float64
--这是正确的


当存在单元格值重复时,在Excel数据框上使用nlargest似乎有问题。除非我遗漏了什么。

你用什么版本的“熊猫”?我尝试了您的示例,它工作正常:“df1.nlargest(2,'Age')”返回两行最大的'Age'。也看到我用过熊猫。0.19.2版本为0.19.1。我还尝试了联机python shell,但结果相同。@user35603我已更新,问题已解决。我真的很感激。你把我从几个小时的头痛中救了出来谢谢马祖,希望它能帮助别人。我已经做了。我很乐意帮忙;)