반응형
Pandas DataFrame에서 쉼표가있는 숫자 문자열을 부동 소수점으로 변환
수천 마커에 대해 쉼표가있는 문자열로 숫자를 포함하는 DataFrame이 있습니다. 나는 그것들을 수레로 변환해야합니다.
a = [['1,200', '4,200'], ['7,000', '-0.03'], [ '5', '0']]
df=pandas.DataFrame(a)
locale.atof를 사용해야한다고 생각합니다. 과연
df[0].apply(locale.atof)
예상대로 작동합니다. 나는 일련의 수레를 얻습니다.
하지만 DataFrame에 적용하면 오류가 발생합니다.
df.apply(locale.atof)
TypeError : ( "시리즈를"로 변환 할 수 없음, u '인덱스 0에서 발생 함')
과
df[0:1].apply(locale.atof)
또 다른 오류가 있습니다.
ValueError : ( 'invalid literal for float () : 1,200', u'occurred at index 0 ')
그렇다면이 DataFrame
문자열을 부동의 DataFrame으로 어떻게 변환 합니까?
csv에서 읽는 다면 수천 개의 arg를 사용할 수 있습니다 .
df.read_csv('foo.tsv', sep='\t', thousands=',')
이 방법은 별도의 단계로 작업을 수행하는 것보다 더 효율적일 수 있습니다.
In [ 9]: import locale
In [10]: from locale import atof
In [11]: locale.setlocale(locale.LC_NUMERIC, '')
Out[11]: 'en_GB.UTF-8'
In [12]: df.applymap(atof)
Out[12]:
0 1
0 1200 4200.00
1 7000 -0.03
2 5 0.00
pandas.Series.str.replace 메소드를 사용할 수 있습니다 .
df.iloc[:,:].str.replace(',', '').astype(float)
이 메서드는 문자열에서 쉼표를 제거하거나 바꿀 수 있습니다.
다음과 같이 한 번에 하나의 열을 변환 할 수 있습니다.
df['colname'] = df['colname'].str.replace(',', '').astype(float)
반응형
'UFO ET IT' 카테고리의 다른 글
AFNetworking으로 세션을 관리하는 방법은 무엇입니까? (0) | 2021.01.06 |
---|---|
멤버 변수를 클래스 멤버로 참조 (0) | 2021.01.06 |
'cordova build ios --release'를 사용하여 iPhone 앱을 배포 (.ipa 생성)하려면 어떻게해야합니까? (0) | 2021.01.06 |
매직 메서드를 통해 액세스되는 PhpStorm 필드 (0) | 2021.01.06 |
거부 호출 대 오류 발생이있는 약속 생성자 (0) | 2021.01.06 |