问题描述
直到我最近使用
pd.read_excel("afile.xslx",decimal=',')
带有小数点选项,可以轻松解析欧洲日期。
我今天将熊猫更新为1.1.3版,并且不再接受“ decimal =”选项。是否不建议使用此选项?如果是,导入在excel中以小数点“,”作为文本存储数字的数字的好方法是什么?
解决方法
我认为read_excel
从未接受过decimal
的论点。 This github issue提出要求(该问题于2016年开放,到2020年10月仍然有效)。
我认为您对read_csv
感到困惑,从{1.1.3开始,熊猫仍然接受decimal
。
无论如何,通过read_excel
,您可以使用converters
参数。来自docs:
转换器:字典,默认为
None
。用于转换值的函数的字典 在某些列中。键可以是整数或列标签, 值是采用一个输入参数Excel单元格的函数 内容,然后返回转换后的内容。
def decimal_converter(value):
try:
return float(value.replace(',','.'))
except ValueError:
return value
pd.read_excel("afile.xslx",converters={'column_name': decimal_converter})
,
另一个适用于我的解决方案是:
bd_df ['col_1'] = bd_df ['col_1']。str.replace(“,”,“。”)。astype(float)