Pandas 数据框用 nan 替换 em-dash

Lau*_*raF 1 python utf-8 pandas

我正在尝试使用 pd.read_excel 将大量主要为数字数据的 .xls 和 .xlsx 文件读入 python。但是,这些文件使用 em-dash 来表示缺失值。我试图让 Python 将所有这些长破折号替换为 nans。我似乎找不到让 Python 甚至识别字符的方法,更不用说替换它了。我尝试了以下不起作用

df['var'].apply(lambda x: re.sub(u'\2014','',x))
Run Code Online (Sandbox Code Playgroud)

我也试过简单

df['var'].astype('float')
Run Code Online (Sandbox Code Playgroud)

将数据框中的所有 em-dashs 转换为 nans,同时将数字数据保留为浮点数的最佳方法是什么?

DYZ*_*DYZ 5

您应该在更早的阶段捕获错误。告诉pd.read_excel()将长破折号视为 NaN:

df = pd.read_excel(..., na_values=['–','—'])
Run Code Online (Sandbox Code Playgroud)