簡體   English   中英

熊貓:在多個列上應用功能

[英]Pandas : Apply function on multiple columns

我正在嘗試添加一個根據所有列的第一個四分位數計算出的新列。 像這樣的東西:

df['Q25']=df[col].apply(lambda x: np.percentile(x, 25) ,axis =1)
#col = ['1', '2','3',..'29'] days in one month

這是我收到的錯誤:

KeyError: "['1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11' '12' '13' '14' '15' '16'\n '17' '18' '19' '20' '21' '22' '23' '24' '25' '26' '27' '28' '29'] not in index"

我知道錯誤顯示python試圖在索引中查找傳遞的列表(col),而不是列本身,但是我不知道該如何解決。 我已經添加了axis = 1,但是沒有運氣。

PS。 我無法像df['1'], df['2']那樣手動添加列df['1'], df['2']因為在其他情況下總數(在本例中為29)會發生變化。

試試看:

df['Q25']= [np.percentile(df.loc[i,:], 25) for i in df.index]

暫無
暫無

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

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