2017-03-02 1 views
0

,이 전 (파이썬 3.5) 코드가 있다고 가정 해 보자는 다음과 같습니다테이블의 첫 번째 열을 문자열로 읽는 방법은 무엇입니까? 예를 들어

In [234]: from io import StringIO 
In [235]: f = '#a b c\n08 1 2\n9 3 4\n' 
In [236]: df = pd.read_table(StringIO(f), sep=' ') 
In [237]: df 
Out[237]: 
    #a b c 
0 8 1 2 
1 9 3 4 

그것은 int으로 1 열을 읽고 8 전에 0를 제거한다. 우리가 dtype={'#a': str}을 str으로 읽기 위해 전달할 수 있다는 것을 압니다. 그러나, 아마도 내가 손에서 전에 열 이름을 모르겠어요, 어떻게 str 유형으로 1 열을 읽을 수 있습니까?

+0

나는'지고있어 형식 오류 : initial_value이 유니 코드이거나 실행하려고 할 때 없음, 세 번째 줄에서 str'하지 귀하 파이썬 2.7에 코드. – Khris

+0

py2에서 테스트되지 않았습니다. 나는 py3을 실행했다. 업데이트 된 질문. – RNA

답변

2

키 인덱스 위치에 해당하는 경우 당신은 사전에 dtype을 사용할 수 있습니다 :

from io import StringIO 
f = '#a b c\n08 1 2\n9 3 4\n' 
df = pd.read_table(StringIO(f), sep=' ', dtype={0: str}) 

print(df) 

    #a b c 
0 08 1 2 
1 9 3 4 

print(df.dtypes) 

#a object 
b  int64 
c  int64 
dtype: object 
+0

@ RNA 귀하의 요구 사항에 맞게 업데이트하십시오. – pansen

+0

매우 좋음, 0 생각 doestn work;), +1 – jezrael

+0

@jezrael 입력 데이터의 열 이름을 0으로 바꾸면 열 이름이 dtype 사전 내에서 문자열로 제공되는 반면 정수는 색인 위치와 일치하기 때문에 여전히 작동합니다. – pansen

관련 문제