直到最近我才使用
pd.read_excel("afile.xslx", decimal=',')
带有十进制选项,这允许它非常轻松地解析欧洲日期。
我今天将熊猫更新到 1.1.3 版,它不再接受选项"十进制 ="。此选项是否已弃用,如果是,导入在 excel 中存储为文本的数字(小数点为",")的好方法是什么,例如"11,3"?
我认为read_excel
从未接受过decimal
论点。此 github 问题要求它(一个持续的问题,于 2016 年开放,截至 2020 年 10 月仍然有效)。
我想你对read_csv
仍然接受熊猫 1.1.3 的decimal
感到困惑。
无论如何,有了read_excel
您可以使用converters
参数。从文档中:
转换器:字典、默认
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)