use*_*759 176 python nan dataframe pandas
我有一个Pandas Dataframe,如下所示:
1 2 3
0 a NaN read
1 b l unread
2 c NaN read
Run Code Online (Sandbox Code Playgroud)
我想用空字符串删除NaN值,以便它看起来像这样:
1 2 3
0 a "" read
1 b l unread
2 c "" read
Run Code Online (Sandbox Code Playgroud)
fan*_*ous 286
稍微短一点是:
df = df.fillna('')
Run Code Online (Sandbox Code Playgroud)
这将用''填充na(例如NaN).
编辑:如果要填充单个列,可以使用:
df.fillna('', inplace=True)
Run Code Online (Sandbox Code Playgroud)
nEO*_*nEO 202
import numpy as np
df1 = df.replace(np.nan, '', regex=True)
Run Code Online (Sandbox Code Playgroud)
这可能有所帮助.它将用空字符串替换所有NaN.
Nat*_*hat 84
df.read_csv(path , na_filter=False) df.read_excel(path , na_filter=False)这会自动将空字段视为空字符串''
''df = df.replace(np.nan, '', regex=True)Ste*_*ist 10
使用格式化程序,如果您只想对其进行格式化,以便在打印时呈现良好的效果。只需使用df.to_string(... formatters来定义自定义字符串格式,而无需不必要地修改您的 DataFrame 或浪费内存:
df = pd.DataFrame({
'A': ['a', 'b', 'c'],
'B': [np.nan, 1, np.nan],
'C': ['read', 'unread', 'read']})
print df.to_string(
formatters={'B': lambda x: '' if pd.isnull(x) else '{:.0f}'.format(x)})
Run Code Online (Sandbox Code Playgroud)
要得到:
A B C
0 a read
1 b 1 unread
2 c read
Run Code Online (Sandbox Code Playgroud)
尝试这个,
添加inplace=True
import numpy as np
df.replace(np.NaN, '', inplace=True)
Run Code Online (Sandbox Code Playgroud)