簡體   English   中英

找到列中的最大數字

[英]Find the largest number in column

我正在嘗試找到具有最大編號的月份(列'月')(在DepDelay列中)

數據

flightID         Month  ArrTime ActualElapsedTime  DepDelay   ArrDelay
BBYYEUVY67527        1   1514.0               58.0       NA      64.0   
MUPXAQFN40227        1     37.0              120.0       13      52.0   
LQLYUIMN79169        1    916.0              166.0       NA     -25.0   
KTAMHIFO10843        1      NaN                NaN        5       NaN   
BOOXJTEY23623        1      NaN                NaN        4       NaN  
BBYYEUVY67527        2   1514.0               58.0       NA      64.0   
MUPXAQFN40227        2     37.0              120.0       NA      52.0   
LQLYUIMN79169        2    916.0              166.0       NA     -25.0   
KTAMHIFO10843        2      NaN                NaN       15       NaN   
BOOXJTEY23623        2      NaN                NaN        4       NaN  

我試過了:

data = pd.read_csv('data.csv', sep='\t')

dep_delay = all_data.groupby(["Month"].DepDelay.count().max())

print(dep_delay)

錯誤:

AttributeError                            Traceback (most recent call last)
<ipython-input-14-2ea6213009d6> in <module>()
----> 1 dep_delay = all_data.groupby(["Month"].DepDelay.count().max())
      2 
      3 print(dep_delay)

AttributeError: 'list' object has no attribute 'DepDelay'

好的輸出:

Month      DepDelay
    1            22

您需要sum而不是count來按組求和。 這是使用GroupBy + sum ,然后使用idxmax的一種方法:

res = df.groupby('Month')['DepDelay'].sum().reset_index()
res = res.loc[[res['DepDelay'].idxmax()]]

print(res)

   Month  DepDelay
0      1      22.0

或者,您可以對組進行分組和排序,然后提取第一行:

res = df.groupby('Month')['DepDelay'].sum()\
        .sort_values(ascending=False).head(1)\
        .reset_index()

print(res)

   Month  DepDelay
0      1      22.0

讓你的代碼工作,改變

dep_delay = all_data.groupby(["Month"].DepDelay.count().max())

dep_delay = all_data.groupby(["Month"]).DepDelay.count().max()

要找到您的解決方案:

idx = all_data['DepDelay'].idxmax()

all_data.loc[[idx], ['Month', 'DepDelay']]

產量

     Month  DepDelay
8      2      15.0

另一種方法:

pd.DataFrame(df.loc[df['DepDelay'].idxmax(), ['Month', 'DepDelay']]).T
#  Month DepDelay
#8     2       15

您可以重置索引以將8更改為0

pd.DataFrame(df.loc[df['DepDelay'].idxmax(), ['Month', 'DepDelay']]).T.reset_index(drop=True)
#  Month DepDelay
#0     2       15

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM