pd.read_excel() 中的十进制选项已弃用?



直到最近我才使用

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)

最新更新