我有以下示例DataFrame定义如下:
Collections.unmodifiableList(mutableList);
并且输出正在跟随。
如果我想提取具有最大Age值的2行,我使用df1 = pandas.DataFrame(data = {"Age":[28, 3, 32, 18], "Student":[False, True, False, False]}, index = ["Jack", "Sam", "Nate", "Jack"])
,输出有3行而不是2行,如下所示:
如果我使用pandas.nlargest(2, "Age")
尝试4个最大的年龄值,结果会更加令人困惑:
我很难理解背后的原因。
答案 0 :(得分:2)
问题已解决。我使用的Pandas版本是0.19.1,在suggestion of @user35603之后我将其更新为0.19.2并重新执行代码并且它有效!
谢谢user35603!
Pandas 0.19.2修正了以下错误:
DataFrame.nlargest
当索引具有重复值(GH13412)时出现错误注意:应用于计数功能时,nlargest函数上的bug still remains
答案 1 :(得分:0)
我正在使用Excel电子表格,我也遇到了nlargest这个问题。我也使用0.19.2仍然有这个问题。索引值在我的工作表中重复。但是,除非CELL值也重复,否则没有问题。例如:
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
但是,如果单元格值不重复,那么nlargest对我来说很有用。例如:
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似乎存在问题。除非我遗漏了什么。