J'essaie de choisir une valeur d'un nombre d'occurrences de valeurs de colonne avec la fréquence max. Il y a des cas de bord quand plusieurs valeurs avec la même fréquence se sont avérées être le maximum.pandas DataFrame choisit la valeur de colonne qui ont toutes la fréquence d'occurrence maximale
Ce que je fais est de choisir la valeur avec la somme agrégée maximum des valeurs d'une autre colonne des rangées auxquelles cette valeur appartient.
max_cur_freq = df[df['currency'] != '']['currency'].mode().tolist()
biggest_amount = 0.0
biggest_amount_currency = ''
for cur in max_cur_freq:
if df[df['currency'] == cur]['amount'].agg('sum') > biggest_amount:
biggest_amount_currency = cur
biggest_amount = df[df['currency'] == cur]['amount'].agg('sum')
# assigns the currency with the largest sum amount as the values for column common_currency
df['common_currency'] = biggest_amount_currency
si le code choisit la currency
avec la somme maximum amount
sur les lignes où cette currency
existe dans le DataFrame
. Je me demande quel est le meilleur moyen de le faire.
PS. un échantillon DataFrame
,
currency amount
50 CAD 410.85
51 CAD 1441.68
53 CAD 1330.33
17625 JPY 2797856.0
17663 JPY 1440.0
17664 JPY 1445.33
16734 CNY 27840.00
54546 CNY 273269.53
17654 GBP 384.0
17655 GBP 526.0
16732 CHF 474.7
16733 CHF 195173.3