如何用我的 DataFrame 中的空字符串替换所有 "nan" 字符串?
How to Replace All the "nan" Strings with Empty String in My DataFrame?
我的数据框中散布着 "None"
和 "nan"
字符串。有没有办法用空字符串 ""
或 nan
替换所有这些,这样当我将数据帧导出为 excel sheet?[=22= 时它们就不会出现]
简化示例:
注:col4
中的nan
不是字符串
ID col1 col2 col3 col4
1 Apple nan nan nan
2 None orange None nan
3 None nan banana nan
当我们用空字符串 ""
:
替换所有 "None"
和 "nan"
字符串后,输出应该是这样的
ID col1 col2 col3 col4
1 Apple nan
2 orange nan
3 banana nan
知道如何解决这个问题吗?
谢谢,
使用 pandas' NaN。这些单元格在 Excel 中将为空(例如,您将能够使用 'select empty cells' 命令。您不能使用空字符串来执行此操作)。
import numpy as np
df.replace(['None', 'nan'], np.nan, inplace=True)
使用字符串列表替换为不会影响实际 nan
的空白字符串...
df.replace(['nan', 'None'], '')
这会给你一个新的数据框:
ID col1 col2 col3 col4
1 Apple NaN
2 orange NaN
3 banana NaN
您可以将每一列与 numpy 对象数据类型(基本上是文本列)进行比较,然后只对这些列进行替换。
for col in df:
if df[col] == np.dtype('O'): # Object
df.col1.replace(['None', 'NaN', np.nan], "", inplace=True)
所有那些环解环解决方案...
replacers = [None, np.nan, "None", "NaN", "nan"] # and everything else that needs replacing.
df.loc[:, df.dtypes == 'object'].replace(replacers, '', inplace=True)
我的数据框中散布着 "None"
和 "nan"
字符串。有没有办法用空字符串 ""
或 nan
替换所有这些,这样当我将数据帧导出为 excel sheet?[=22= 时它们就不会出现]
简化示例:
注:col4
中的nan
不是字符串
ID col1 col2 col3 col4
1 Apple nan nan nan
2 None orange None nan
3 None nan banana nan
当我们用空字符串 ""
:
"None"
和 "nan"
字符串后,输出应该是这样的
ID col1 col2 col3 col4
1 Apple nan
2 orange nan
3 banana nan
知道如何解决这个问题吗?
谢谢,
使用 pandas' NaN。这些单元格在 Excel 中将为空(例如,您将能够使用 'select empty cells' 命令。您不能使用空字符串来执行此操作)。
import numpy as np
df.replace(['None', 'nan'], np.nan, inplace=True)
使用字符串列表替换为不会影响实际 nan
的空白字符串...
df.replace(['nan', 'None'], '')
这会给你一个新的数据框:
ID col1 col2 col3 col4
1 Apple NaN
2 orange NaN
3 banana NaN
您可以将每一列与 numpy 对象数据类型(基本上是文本列)进行比较,然后只对这些列进行替换。
for col in df:
if df[col] == np.dtype('O'): # Object
df.col1.replace(['None', 'NaN', np.nan], "", inplace=True)
所有那些环解环解决方案...
replacers = [None, np.nan, "None", "NaN", "nan"] # and everything else that needs replacing.
df.loc[:, df.dtypes == 'object'].replace(replacers, '', inplace=True)