最大排序值不适用于数据帧Python

时间:2017-08-25 00:03:27

标签: python pandas sorting dataframe

我有一个名为stock1的数据框,由505个股票组成,它们的百分比变化,每列共有52行。 我想找到每周最后一行最大值的股票,所以我做了:

 import pandas as pd

 st1 = pd.DataFrame({"FIN_MAX": stock1.tail(1).max().sort_values(ascending=False)})

上面的代码最初有效,但现在它会抛出错误。

 TypeError: '>' not supported between instances of 'float' and 'str'

我能得到的最接近的是如果我放弃sort_values(ascending=False),但是这些值并没有按从高到低的顺序排列。

 st1 = pd.DataFrame({"FIN_MAX":stock1.tail(1).max()})

我还尝试了以下代码,它也会产生与上述相同的错误。

 st1.sort_values(["FIN_MAX"], ascending=False)

我在Jupyter Notebook上使用Python 3.6.1。 任何帮助或替代方案都会非常感激。

当我连接各个csv文件中的所有股票时,由于创建了一个名为Unnamed: 0的列,似乎错误仍然存​​在。 一旦我del stock1["Unnamed: 0"],它似乎已经解决了这个问题。

1 个答案:

答案 0 :(得分:1)

IIUC:

获取具有最大值的股票

stock1.iloc[-1].idxmax()

获取具有最大值和值

的股票
stock1.iloc[-1].nlargest(1)

获取具有最大值及其值的n个股票

n = 5
stock1.iloc[-1].nlargest(n)