2016-12-28 1 views
0

위키 피 디아에서 복사하여 붙여 넣은 데이터가 있는데이 데이터를 청소하는 중입니다. 숫자 인 모든 문자열을 실수로 변환하고 싶습니다. 어떤 이유로 숫자 문자열은 첫 번째 '100.0'제외 str.isnumeric()에 의해 인식되지 않는isnumeric()이 문자열을 숫자로 인식하지 못합니다.

for n,i in enumerate(PercentageWorldEmissions): 
if str.isnumeric(i): 
    PercentageWorldEmissions[n] = float(i) 
else: 
    continue 

출력 : PercentageWorldEmissions는 제외 출력 소자와 동일하게 나타남

['% CO2 emissions by country', 100.0, '29.55', '14.95', '9.57', '6.56', '4.95', '3.58', '2.15', '1.74', '1.73', '1.71', '1.58', '1.40', '1.38', '1.38', '1.28', '1.27', '1.16', '1.15', '1.10', '0.99', '0.94', '0.91', '0.84', '0.78', '0.76', '0.70', '0.68', '0.66', '0.64', '0.63', '0.56', '0.56', '0.55', '0.53', '0.44', '0.44', '0.40', '0.39', '0.34', '0.31', '0.28', '0.27', '0.27', '0.26', '0.25', '0.22', '0.22', '0.21'] 

원래 '100.0'이었던 100.0

왜 다른 숫자가 다른 문자열을 인식하지 못합니까? 내가 볼 수없는 숨겨진 문자가 있습니까? 다른 페이지에서 본 repr() 메서드를 시도했지만 아무 것도 표시하지 않았습니다.

나는 isdigit, isalnum, isdecimal도 사용하지 않았다. ... 도움을 주시면 감사하겠습니다!

답변

0

나는 '100.0'이뿐만 아니라 str.isnumeric() 인식되지 않았을 것이기 때문 요소 100.0, 원래 '100.0'라고하지 않습니다. 그 이유는 문자 . (전체 중지)에 유니 코드 숫자이 없기 때문입니다. 오히려 100.0이 원래 '100' 인 것으로 추정하고 있는데, 이는 isnumeric입니다.

문제가 해결 될 수 있습니다. e. 지. 이 방법 :

for n, i in enumerate(PercentageWorldEmissions): 
    try: 
     PercentageWorldEmissions[n] = float(i) 
    except ValueError: 
     continue 
관련 문제