2017-04-03 47 views
1

鑑於這一數據框:大熊貓Idxmax的日期值數據幀

import matplotlib.pyplot as plt 
import pandas as pd 
df = pd.DataFrame({'Date':['20/03/17 10:30:34','20/03/17 10:31:24','20/03/17 10:34:34'], 
        'Value':[4,7,5]}) 

df['Date'] = pd.to_datetime(df.Date) 
df 
Out[53]: 
       Date Value 
0 2017-03-20 10:30:34  4 
1 2017-03-20 10:31:24  7 
2 2017-03-20 10:34:34  5 

林正在試圖提取最大值及其索引。我可以df.Value.max()得到的最大值,但是當我用df.idxmax()獲得指數FO的價值我得到一個類型錯誤:

TypeError: float() argument must be a string or a number

是否有任何其他方式來獲得數據幀的最大值的指數? (或任何辦法來糾正這一個?)

回答

2

因爲它應該是:

df.Value.idxmax() 

然後返回1.

+0

上帝,我AMB這麼愚蠢的,感謝您的快速答覆。 – whiteTea

+0

'df.idxmax()'仍然可以工作,不會引發錯誤。 – pansen

1

你必須從你想獲得最大的價值IDX哪一列指定。

要獲得maxumum值使用的IDX:

df.Value.idxmax() 
,如果你想獲得最大的日期使用的IDX

df.Date.idxmax() 
1

如果你只關心Value列,你可以使用方法:

df.Value.idxmax() 
>>> 1 

但是,奇怪的是,它在兩列上都失敗df.idxmax()如下面的作品,太:

df.Date.idxmax() 
>>> 2 

df.idxmax()也適用於其他一些虛擬數據:

dummy = pd.DataFrame(np.random.random(size=(5,2))) 
print(dummy)  

    0   1 
0 0.944017 0.365198 
1 0.541003 0.447632 
2 0.583375 0.081192 
3 0.492935 0.570310 
4 0.832320 0.542983 

print(dummy.idxmax()) 

0 0 
1 3 
dtype: int64