python - Python:如何确定我正在运行程序的计算机是否使用欧洲小数
问题描述
我为 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)
解决方案
您正在寻找该locale
模块,Doug Hellman 在此 Python Module Of The Week 专栏中合理地完整描述了该模块。
提示:您可能正在寻找locale.getlocale()['decimal_point']
and locale.getlocale()['mon_thousands_sep']
。
推荐阅读
- javascript - 使用 jQuery 从 HTML 元素中删除破折号
- folium - folium 程序 TypeError:需要浮点数
- javascript - “承诺”类型不存在“订阅”
' 角 6 - c# - WPF Mvvm解决事件触发和视图创建的顺序
- php - 使用 for 循环和 switch case 迭代数据
- php - 从 php 运行 python 脚本并在 mysql 数据库中写入数据值
- javascript - 如何使用 SeleniumWebdriver 和 Python 通过滚动查找网页上的所有元素
- excel - 我需要在 Excel 工作表中提取文本中的数字
- python - 分组后从熊猫python中的每个组中找到最接近的
- powerbi - 如何根据所选值显示 +10 数据?