簡體   English   中英

Pandas GroupBy 多列並在一列上應用 function

[英]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.

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