从 csv 文件等源读取数据帧时,会出现“?”等文字 显示 pandas 中的空白值。

如果这是一个数字列,并且您尝试用mean替换,df['weight'].replace('?',df['weight'].mean() ,inplace='True')如果它的类型是“Object”而不是int64,则可能不起作用。
在这种情况下,我会替换这些“?” 与 NaN 是因为 isna() 不能直接对它们起作用。然后将这些 NaN 替换为 0,最后用它们替换为实际值进行插补
df['SGOT'].replace('?',np.nan,inplace='True' )
df1['SGOT'].fillna(value=0,inplace=True)
df1['SGOT']=df1['SGOT'].astype(int)
df1['SGOT'].replace(0,df1['SGOT'].mean(),inplace=True )
Run Code Online (Sandbox Code Playgroud)
我确信有更好的方法来做到这一点。请告诉我
当您读取数据时(大概是使用),是替换为 的pd.read_csv()好时机:'?'nan
df = pd.read_csv(..., na_values='?')
Run Code Online (Sandbox Code Playgroud)
请参阅文档。na_values也可以是列表或字典。
默认情况下,这将添加 '?'到要解释为 NaN 的字符串列表中(keep_default_na=False如果您愿意,可以更改它)。
| 归档时间: |
|
| 查看次数: |
6194 次 |
| 最近记录: |