簡體   English   中英

將列中的 NaN 值替換為該列中特定類別的模式

[英]Replacing NaN values in a column with the mode of a particular Category in that the column

df['Android Ver'].fillna(str(df.groupby('Category')['Android Ver'].mode()), inplace=True)

這段代碼給出了一個錯誤。 我想用應用程序的特定“類別”中的“Android Ver”列的模式填充“Android Ver”列中的 NaN 值,以便美容應用程序的“Android Ver”列獲得 Android 版本的模式僅在數據集中的美容應用程序。 鏈接到 Jupyter 筆記本

如果您運行df.loc[df['Android Ver'].isna()]您會看到列中只有兩個 NaN,因此在這種情況下您可以手動替換它們。 但這是一個(肯定不是最佳的)通用解決方案:

import pandas as pd
df = pd.read_csv('./datasets/apps.csv', index_col=0)
mode_dict = dict(df.groupby('Category')['Android Ver'].agg(lambda x: x.mode()))
df['Android Ver'].loc[df['Android Ver'].isna()] = df.loc[df['Android Ver'].isna()].apply(lambda x: mode_dict[x.Category],axis=1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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