我为 Python 编写了一个程序,它在 pandas 中读取一个 csv 文件,然后进行一些分析。不幸的是,一些正在使用我的程序的朋友使用欧洲计算机,因此他们的 csv 文件使用逗号 (,) 来分隔小数,而我使用点 (.) 。在任何情况下,列之间的一般分隔符都是分号,所以那里没有问题。
现在我在程序的开头有一个设置,如下所示:
european_decimal=True #False
然后稍后
if european_decimal:
df1 = pd.read_csv(directory+filename,delimiter=";",decimal=",")
else:
df1 = pd.read_csv(directory+filename,delimiter=";")
这当然有效。但它真的很丑,需要我不是计算机程序员的朋友来乱码。有什么方法可以找出运行 python 程序的计算机是否使用逗号或句号作为分隔符?
后期编辑:最后我应用了@ALollz 解决方案,我只是将任何带逗号的字符串转换为带点的字符串:
for column in list_data_columns:
df1[column]=df1[column].astype(str).str.replace(",",".").astype(float)