[PYTHON] 십진수 표 변환
PYTHON십진수 표 변환
파이썬으로 읽으려는 데이터 읽기 기능이있는 CSV 파일이 있습니다. "2,5"와 같은 문자열을 포함하는 목록을 얻습니다. float ( "2,5")는 소수점이 잘못 표시되어 작동하지 않습니다.
이것을 파이썬으로 2.5로 어떻게 읽습니까?
해결법
-
==============================
1.float ( "2,5".replace ( ',', '.')) 대부분의 경우에 사용됩니다.
float ( "2,5".replace ( ',', '.')) 대부분의 경우에 사용됩니다.
값이 크고 수천 명이 사용 된 경우 다음을 수행 할 수 있습니다.
모든 쉼표를 점으로 바꿉니다 : value.replace ( ",", ".")
마지막 점을 제외한 모두 제거 : value.replace ( ".", "", value.count ( ".") -1)
-
==============================
2.로케일 인식 방식으로 할 수 있습니다.
로케일 인식 방식으로 할 수 있습니다.
import locale # Set to users preferred locale: locale.setlocale(locale.LC_ALL, '') # Or a specific locale: locale.setlocale(locale.LC_NUMERIC, "en_DK.UTF-8") print locale.atof("3,14")
이 방법을 사용하기 전에이 절을 읽으십시오.
-
==============================
3.팬더는 이것을 즉시 사용할 수 있습니다.
팬더는 이것을 즉시 사용할 수 있습니다.
df = pd.read_csv(r'data.csv', decimal=',')
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html을 참조하십시오.
-
==============================
4.정규식을 사용하면 더 신뢰할 수 있습니다.
정규식을 사용하면 더 신뢰할 수 있습니다.
import re decmark_reg = re.compile('(?<=\d),(?=\d)') ss = 'abc , 2,5 def ,5,88 or (2,5, 8,12, 8945,3 )' print ss print decmark_reg.sub('.',ss)
결과
abc , 2,5 def ,5,88 or (2,5, 8,12, 8945,3 ) abc , 2.5 def ,5.88 or (2.5, 8.12, 8945.3 )
더 복잡한 경우 (예를 들어 소수점 앞에 숫자가없는 숫자)를 처리하려면 다음 스레드에서 모든 유형의 숫자를 검색하도록 만든 정규식을 사용하는 것이 좋습니다.
stackoverflow.com/questions/5917082/regular-expression-to-match-numbers-with-or-without-commas-and-decimals-in-text/5929469
-
==============================
5.10 진수 쉼표를 모두 소수점으로 바꾸십시오.
10 진수 쉼표를 모두 소수점으로 바꾸십시오.
floatAsStr = "2,5" floatAsStr = floatAsStr.replace(",", "."); myFloat = float(floatAsStr)
물론이 함수는 파이썬이 char과 string을 구별하기 때문에 모든 부분 문자열에 대한 작업을 대체합니다.
from https://stackoverflow.com/questions/7106417/convert-decimal-mark by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬에서 함수를 타임 아웃하는 방법, 타임 아웃이 1 초 미만입니다. (0) | 2018.10.14 |
---|---|
[PYTHON] Pandas : dropna 이후 inplace rename을위한 특별한 성능 저하 (0) | 2018.10.14 |
[PYTHON] LIKE에서 와일드 카드를 사용하는 Python SQLite 매개 변수 대체 (0) | 2018.10.14 |
[PYTHON] 문자열에서 터플을 파싱 하시겠습니까? (0) | 2018.10.14 |
[PYTHON] 숫자에 '소수 자리 표시'천 단위 구분 기호 추가 (0) | 2018.10.14 |