簡體   English   中英

python(numpy)-df應用錯誤-IndexError:元組索引超出范圍

[英]Python(Numpy)- df apply error - IndexError: tuple index out of range

from pandas import DataFrame,Series
import numpy

def avg_bronze_medal():
    countries=['Russian Fed','Norway','Canada']
    gold=[13,11,10]
    silver=[11,5,10]
    bronze=[9,10,5]
    medal_counts={'country_name':Series(countries),'gold':Series(gold),'silver':Series(silver),'bronze':Series(bronze)}
    df=DataFrame(medal_counts)
    print df
    print df['gold'].apply(numpy.mean, axis=1)

最后一行給出錯誤,如“ IndexError:元組索引超出范圍”。 我需要在數據框中使用Apply函數,它應該獲得金,銅和銀列的平均值。 在上面的示例中,我僅使用了金柱。 請幫助我修復錯誤。

要同時獲取所有三列的平均值:

df[['gold', 'bronze', 'silver']].mean(axis=1)

但這使我感到困惑,為什么您需要比賽中獲得的平均獎牌...但是我想您出於某些原因需要它!


OP應注意的一些其他注意事項:

.apply是一種適用於行或列的方法(默認)。 如果您調用df.apply(func)函數,則func將應用於所有列,一次應用於一列。 df.apply(func, axis=1)會將func應用於所有行。 對於pd.Series因為只有一列, .apply始終對行起作用。 如果您需要將復雜的自定義函數應用於行或列,則.apply很有用。 一些統計量度(例如總和,均值,標准差)很常見,並且具有自己的矢量化功能。 因此,可以像上面的答案一樣直接給他們打電話。

請閱讀上一段中鏈接的文檔以獲取更多信息。

暫無
暫無

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

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