首页 > 解决方案 > 逗号作为熊猫的 read_excel 中的小数分隔符

问题描述

我有一个包含 119 张工作表的 excel 文件,我想获取数据以绘制多个图表。问题是数值有逗号作为小数分隔符。而且我已经读过,与 read_csv 不同的是,Pandas 中的 read_excel 函数没有这个选项。

我打算从一些选定的工作表中加载特定的列,并使用 for 循环构建一个合并图。

我看到的一种替代方法(但这有点过头了)是将每个工作表转换为特定的 csv 文件并加载它们并使用逗号选项作为小数分隔符)。是否有任何替代方法可以让我正确加载数据而无需求助于该替代方法?

谢谢!

标签: pythonpandas

解决方案


不像read_csv()方法read_excel()方法不支持decimal参数:

但是在加载数据集后,您可以使用:

df = pd.read_excel('yourexcel.xlsx')
#loading dataset

cols=#your list of column that you want to convert
df[cols]=df[cols].replace(',','.',regex=True).astype(float)

或者

另一种方法是创建一个函数并converters在方法中使用参数read_excel()

def typecast_float(value):
    try:
        return float(value.replace(',', '.'))
    except:
        return value

#Finally:

df=pd.read_excel("sample.xlsx", converters={'column_name': typecast_float})

推荐阅读