Pandas中read_excel使用逗号作为小数点的分隔符

3
我有一个包含119个工作表的Excel文件,想要获取数据以绘制多张图表。问题在于数值具有逗号作为小数分隔符,并且我已经阅读到,与read_csv不同,Pandas中的read_excel函数没有此选项。
我打算从选择的某些工作表中加载特定列,并使用for循环构建合并图表。
我看到的其中一种选择(但这有点过度)是将每个工作表转换为一个特定的CSV文件,加载它们并使用逗号作为小数分隔符的选项。是否有任何替代方法可以正确加载数据,而无需采用这种替代方法?
谢谢!

嗨!以下的答案有没有一个有效?如果是的话,如果您愿意,可以考虑接受其中之一来向其他人表明问题已解决。如果不行,您可以提供反馈,以便它们可以得到改进(或完全删除)。 - Anurag Dabas
4个回答

2

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)

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

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

#Finally:

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

从1.4.0版本开始,pandas支持read_excel()decimal参数。 - Orestis Kapar

1

就像这样简单:

pd.read_excel(file_locale, decimal=',')

0

只需修改千位分隔符:

df = pd.read_excel('yourexcel.xlsx', thousands=',')

0
дҪ иҰҒжүҫзҡ„жҳҜ `decimal`гҖӮ
`df = pd.read_excel('file.xlsx', decimal=',')`гҖӮ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接