반응형
판다 데이터 프레임 열을 int가 아닌 문자열로 가져오기
다음 csv를 int64가 아닌 문자열로 가져오고 싶습니다.Pandas read_csv는 자동으로 int64로 변환하지만 이 열은 문자열로 필요합니다.
ID
00013007854817840016671868
00013007854817840016749251
00013007854817840016754630
00013007854817840016781876
00013007854817840017028824
00013007854817840017963235
00013007854817840018860166
df = read_csv('sample.csv')
df.ID
>>
0 -9223372036854775808
1 -9223372036854775808
2 -9223372036854775808
3 -9223372036854775808
4 -9223372036854775808
5 -9223372036854775808
6 -9223372036854775808
Name: ID
불행히도 변환기를 사용하면 동일한 결과를 얻을 수 있습니다.
df = read_csv('sample.csv', converters={'ID': str})
df.ID
>>
0 -9223372036854775808
1 -9223372036854775808
2 -9223372036854775808
3 -9223372036854775808
4 -9223372036854775808
5 -9223372036854775808
6 -9223372036854775808
Name: ID
이것이 판다들에게 효과가 있을 것이라는 것을 반복하고 싶습니다 >= 0.9.1:
In [2]: read_csv('sample.csv', dtype={'ID': object})
Out[2]:
ID
0 00013007854817840016671868
1 00013007854817840016749251
2 00013007854817840016754630
3 00013007854817840016781876
4 00013007854817840017028824
5 00013007854817840017963235
6 00013007854817840018860166
정수 오버플로도 감지하는 문제를 만들고 있습니다.
편집: 여기에서 해상도를 참조하십시오. https://github.com/pydata/pandas/issues/2247
다른 사용자에게 도움이 되는 업데이트:
모든 열을 str로 설정하려면 주석에서 다음 작업을 수행할 수 있습니다.
pd.read_csv('sample.csv', dtype = str)
대부분의 열 또는 선택적 열을 str로 사용하려면 다음 작업을 수행할 수 있습니다.
# lst of column names which needs to be string
lst_str_cols = ['prefix', 'serial']
# use dictionary comprehension to make dict of dtypes
dict_dtypes = {x : 'str' for x in lst_str_cols}
# use dict on dtypes
pd.read_csv('sample.csv', dtype=dict_dtypes)
이것은 아마도 가장 우아한 방법은 아닐 것입니다. 하지만 그것은 일을 완성합니다.
In[1]: import numpy as np
In[2]: import pandas as pd
In[3]: df = pd.DataFrame(np.genfromtxt('/Users/spencerlyon2/Desktop/test.csv', dtype=str)[1:], columns=['ID'])
In[4]: df
Out[4]:
ID
0 00013007854817840016671868
1 00013007854817840016749251
2 00013007854817840016754630
3 00013007854817840016781876
4 00013007854817840017028824
5 00013007854817840017963235
6 00013007854817840018860166
교체하기만 하면 됩니다.'/Users/spencerlyon2/Desktop/test.csv'파일의 경로를 사용하여
판다 1.0 이후로 그것은 훨씬 더 간단해졌습니다.열이 '로 표시됩니다.ID'가 dtype 'string':
pd.read_csv('sample.csv',dtype={'ID':'string'})
이 시작 안내서에서 볼 수 있듯이 'string' dtype은 문자열이 dtype 'object'로 취급되기 전에 도입되었습니다.
언급URL : https://stackoverflow.com/questions/13293810/import-pandas-dataframe-column-as-string-not-int
반응형
'programing' 카테고리의 다른 글
| Android에서 특정 Wi-Fi 네트워크에 프로그래밍 방식으로 연결하려면 어떻게 해야 합니까? (0) | 2023.09.02 |
|---|---|
| 재개() 및 일시 중지()의 조각이 백스택에서 호출되지 않음 (0) | 2023.09.02 |
| 클릭 시 jquery 내의 ajax 게시물 (0) | 2023.08.28 |
| ExecuteReader: 연결 속성이 초기화되지 않았습니다. (0) | 2023.08.28 |
| Powershell에서 문자열을 int로 변환하는 관용적인 방법은 무엇입니까? (0) | 2023.08.28 |