我有一個名為 Medal 的 DataFrame。在獎牌中,有一個名為“event_gender”的列,它有 4 個唯一值(男性、女性、開放和混合)。我試圖撰寫一個函式來通過這些唯一值獲取 groupby。
如果可能的話,我想為這些命名程序撰寫 for 回圈。
到目前為止,這是我能做的,它正在發揮作用。
def gender(df, sex):
temp_df = df.loc[df['event_gender']==sex]
last_df = temp_df.groupby(['country_3_letter_code', 'medal_type'])['event_gender'].count()
return last_df
Men = gender(medal, 'Men')
Women = gender(medal, 'Women')
Mixed = gender(medal, 'Mixed')
Open = gender(medal, 'Open')
但是在這里的最后一個代碼中,我分別命名了每個 DataFrame,有沒有更簡單的方法來為 Dataframes 命名這些?例如:
for item in medal['event_gender'].unique():
item = gender(medal, item)
uj5u.com熱心網友回復:
是的,你可以這樣做:
for item in medal['event_gender'].unique():
globals()[item] = gender(medal, item)
但為什么要這樣做?保持您的資料框原樣并使用分組對其進行處理。對同一資料幀的不同組進行相同計算而不是對不同資料幀進行相同計算更容易
uj5u.com熱心網友回復:
如果您想處理 event_gender 列中的每個唯一專案。然后你可以在你的分組專案上使用聚合函式,如下所示:
gender_grouping = medal.groupby(['event_gender']).agg({'country_3_letter_code': 'value_counts',
'medal_type': 'value_counts'})
在此之后,您可以通過以下方式檢索您感興趣的 event_gender 專案:
gender_grouping.loc['Men']
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/464567.html
下一篇:object.__str__和object.__repr__有什么作用?警告:它與Class.__str__和Class.__repr__不同
