[英]Pandas GroupBy Multiple Columns and apply function on one column
我正在研究這種類型的 pandas dataframe:
章節 | 標簽代碼 | 注釋者 | 圓形長度 |
---|---|---|---|
第1章 | 1 | 1 | 159 |
第2章 | 3 | 2 | 30 |
第2章 | 4 | 2 | 150 |
我正在嘗試在此數據幀上應用 Krippendorff 的 alpha,以分別計算本書每一章和每種情感的注釋器間一致性。 這是 function 計算此數據幀上的注釋器間協議。
def krippendorffs_emotion(chapters):
return sf.calculate_krippendorffs_alpha_for_df(chapters, experiment_col='rounded_length', annotator_col='annotator', class_col='label_code')
列:
“label_code”是八種不同的情緒編碼為一個數字。
'annotator' 編碼不同的注釋器
'rounded_lenght' 識別我的文本部分
並且“章節”列編碼了本書的不同章節。
要應用這個 function 我需要按章節分組這個數據幀,我需要為每個 label_code 單獨的結果
這是我嘗試過的。
grouped_df = emo_chapters_df.groupby(['Chapter','label_code']).apply(kripendorf_emotion(emo_chapters_df))
grouped_df
當我運行此代碼時,我收到:
TypeError: 'numpy.float64' object is not callable
預先感謝您的幫助。
IIUC,您要做的就是對您的多個組名稱進行一次返回。
在這種情況下,您的 dataframe 的一個簡單切片應將結果限制為可能單次返回的系列
emo_chapters_df.groupby(['Chapter','label_code'])['Column you want to be returned from multiple groupby'].apply(your_funct)
現在,如果您想返回 df object,並在單個給定列上制定條件,那就是另一個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.