2013-05-16 3 views

답변

0

내 문제를 파악 초기 .txt 인의 분리에서 가정 ... 항상 확인 필요한 경우 색인이 하이픈으로 결합됩니다. 특히 첫 번째 열의 'Mon id'가 내 문제였습니다 ... 'Mon-id'여야합니다.

+3

열 이름에 공백이 없어도되지만 분리 할 수있는 항목으로 연결해야합니다. "Mon"과 "id"사이의 공백은 열 사이의 공백과 구별하기가 어렵습니다. 때로는'pd.read_table ("gistfile1.txt", sep = r "\ s +", skiprows = 1, header = None)'과 같은 일을하는 것이 더 쉽다는 사실을 발견했다. – DSM

+0

@DSM - Cool. 그거 알아두면 좋을거야. 저는이 모든 것을 처음 접했을뿐 아니라 단계적인 과정을 거칩니다. 의견을 보내 주셔서 감사합니다! – Matt

+0

다른 열 이름이'sep = r "\ s \ s +"'(하나 이상에 대해서만 분리됨)로 여러 공백으로 구분 된 경우에도 효과가있었습니다. 너는 운이 없다. : ^) – DSM

2

skipinitialspace을 시도해보십시오

In [26]: pd.read_table('test.txt', sep=' ', skipinitialspace=True) 
Out[26]: 
<class 'pandas.core.frame.DataFrame'> 
Int64Index: 386 entries, 0 to 385 
Data columns (total 7 columns): 
Mon   386 non-null values 
id   386 non-null values 
NA   386 non-null values 
alpha_K24 386 non-null values 
class  386 non-null values 
alpha_K8  386 non-null values 
class.1  0 non-null values 
dtypes: float64(3), object(4) 

편집 문제를 오해에 대한

죄송합니다. 나는 @DSM 언급도 다른 이름으로 두 번째 class을 설정할 수 있습니다 열 이름

In [55]: pd.read_table('test.txt', sep=r"\s\s+", header=None, skiprows=[0], names=['Mon id', 'Na', 'alpha_K24', 'class', 'alpha_8', 'class']) 
Out[55]: 
<class 'pandas.core.frame.DataFrame'> 
Int64Index: 386 entries, 0 to 385 
Data columns (total 6 columns): 
Mon id  386 non-null values 
Na   386 non-null values 
alpha_K24 386 non-null values 
class  386 non-null values 
alpha_8  386 non-null values 
class  386 non-null values 
dtypes: float64(2), object(4) 

주를 설정 한 테이블을 읽을 수 있다고 생각합니다. 또는 두 개의 열을 받게됩니다 df['class']

+1

여전히 열을 패치해야합니다. – DSM

+0

죄송합니다. 첫 번째 열 이름에 공백이 있다는 것을 잊었습니다. – waitingkuo

+0

+1 실제로 그것을하고 있지만, 나는'r "\ s +"'을 여기에 사용한다고 생각합니다. '\ s \ s +'는 모든 것이 (포함 된 열) 두 개 이상의 공백으로 분리되어 있으면 "Mon id"를 함께 유지하는 가상의 것이 었습니다. 그렇지 않다. 여기서는 데이터 자체에서 문제없이 작동하지만'\ s' 자체를 전달할 필요가 없으므로 이점이 없습니다. – DSM

관련 문제