나는 탭으로 파일을 문자열로 해석해야하는 열로 구분하지만 많은 항목이 정수입니다. 작은 파일이 read_csv 제대로 있지만 큰 파일이 나던 작품에, 일부 비 정수 값을보고 난 후에 문자열로 열을 해석 :pandas read_csv dtype 추론 문제
import pandas as pd
df = pd.DataFrame({'a':['1']*100000 + ['X']*100000 + ['1']*100000, 'b':['b']*300000})
df.to_csv('test', sep='\t', index=False, na_rep='NA')
df2 = pd.read_csv('test', sep='\t')
print df2['a'].unique()
for a in df2['a'][262140:262150]:
print repr(a)
출력 :
['1' 'X' 1]
'1'
'1'
'1'
'1'
1
1
1
1
1
1
흥미롭게 262144 2의 힘 추측과 변환은 청크에서 발생하지만 일부 청크는 건너 뛰고 있다고 생각합니다. 문제가 해결되지 읽기와 쓰기를 위해 = csv.QUOTE_NONNUMERIC 을 인용 를 추가하지만
나는,이 버그이지만, 그 주위에 일이 아마도 인용 사용하려는 매우 확신합니다. 이상하게도 필자는 문자열 데이터를 인용하여이 문제를 해결하고 팬더가 인용 된 데이터를 추론하지 않도록 할 수 있습니다.
사용 팬더 0.12.0
당신은 여기 read_csv 파서를 속였다 한
[docs] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html)는 다음과 같이 동작합니다 :'pd.read_csv (' 테스트 ', sep ='\ t ', 변환기 = {'a ': str})'. –
@StevenRumbalski 그리고 그것은 완전히 않습니다! 답변으로 추가해야합니다! –
@AndyHayden : 감사합니다. –