Je suis novice à Python - j'essaie de remplacer NULL et vide ('') valeurs se produisant dans une colonne d'un Trame de données Pandas avec l'élément le plus fréquent dans cette colonne. Mais je dois être capable de le faire pour toutes les colonnes et toutes les lignes du cadre de données. J'ai écrit le code suivant - Mais cela prend beaucoup de temps à exécuter. Pouvez-vous s'il vous plaît m'aider à optimiser?Remplacer les valeurs vides et vides dans toutes les colonnes de trame de données avec l'élément Non Null le plus fréquent des colonnes respectives
Merci Saptarshi
for column in df:
#Get the value and frequency from the column
tempDict = df[column].value_counts().to_dict()
#pop the entries for 'NULL' and '?'
tempDict.pop(b'NULL',None)
tempDict.pop(b'?',None)
#identify the max item of the remaining set
maxItem = max(tempDict)
#The next step is to replace all rows where '?' or 'null' appears with maxItem
#df_test[column] = df_test[column].str.replace(b'NULL', maxItem)
#df_test[column] = df_test[column].str.replace(b'?', maxItem)
df[column][df[column] == b'NULL'] = maxItem
df[column][df[column] == b'?'] = maxItem
Quel comportement souhaitez-vous lorsqu'il n'y a pas d'élément "le plus fréquent" (c'est-à-dire lorsque toutes les valeurs sont nulles ou lorsque plusieurs éléments sont liés)? – ASGM