2012-03-14 1 views
7

나는 다음과 같은 형식으로 텍스트 파일이 : 나는 DataFrame에로드 할 read_csv를 사용할 때pandas.read_csv를 사용하여 csv 파일에서 데이터를로드 할 때 dtype을 지정하는 방법은 무엇입니까?

000423|东阿阿胶|  300|1|0.15000|   | 
000425|徐工机械|  600|1|0.15000|   | 
000503|海虹控股|  400|1|0.15000|   | 
000522|白云山A|  |2|  | 1982.080| 
000527|美的电器|  900|1|0.15000|   | 
000528|柳 工|  300|1|0.15000|   | 

, 일부 열에 대한 올바른 DTYPE를 생성하지 않습니다. 예를 들어 첫 번째 열은 unicode str이 아닌 int로 파싱됩니다. 세 번째 열은 int가 아닌 unicode str으로 파싱됩니다. DataFrame의 dtype을 사전 설정하는 방법은 numpy.genfromtxt는 무엇입니까?

업데이트 : 나는 문제가 발생 이런 read_csv 사용 :

DTYPE 부호화 두 문제를 I 사용해야 할 해결하기 위해서
data = pandas.read_csv(StringIO(etf_info), sep='|', skiprows=14, index_col=0, 
         skip_footer=1, names=['ticker', 'name', 'vol', 'sign', 
         'ratio', 'cash', 'price'], encoding='gbk') 

unicode() 및 제 numpy.genfromtxt :

etf_info = unicode(urllib2.urlopen(etf_url).read(), 'gbk') 
nd_data = np.genfromtxt(StringIO(etf_info), delimiter='|', 
         skiprows=14, skip_footer=1, dtype=ETF_DTYPE) 
data = pandas.DataFrame(nd_data, index=nd_data['ticker'], 
         columns=['name', 'vol', 'sign', 
           'ratio', 'cash', 'price']) 

read_csvdtypeusecols 설정을 추가 할 수 있다면 좋을 것입니다. 내 탐욕 때문에 미안해.^_^

+3

실제로 파일 판독기에 대한 작업이 더 필요합니다. 여기를 참조하십시오 : https://github.com/pydata/pandas/issues/926. 바라건대 마술 개발자가 목공예에서 나와 나를 도와 줄 수 있기를 바랍니다. –

답변

4

간단히 말해서 : 아니요, 아직 없습니다. 이 특정 영역에서 더 많은 작업 (읽기 :보다 활동적인 개발자)이 필요합니다. 어떻게하면 read_csv을 사용하고 있는지 게시 할 수 있다면 도움이 될 것입니다. 바 사이의 공백이 문제가 될 수 있습니다.

EDIT : 이제는 사용되지 않습니다. 이 문제는 기본적으로 read_csv

+1

감사합니다. Wes. 그냥 Python 비디오를 Python의 데이터 분석에서 유튜브의 팬더로 보았습니다. 큰 도움이됩니다! – Deadwood

1

read_csv에서 사용할 수 있습니다.

추기경 : Wes McKinney에 대한 답변으로 "과거의 웨스 (Wes)"와 모순되는 것은 상당히 어색합니다.

관련 문제