2017-05-24 5 views
-1

저는 팬더를 처음 접했고 다음과 같이 달성하려고 노력했지만 어려움을 겪고 있습니다. 누군가가 도움을 줄 수 있기를 바랍니다.분할 팬더 데이터 프레임을 여러 열로 나누기

I는 현재 다음 팬더 Dataframe

Out[10]: 
0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30  396.90 4.98 24.00 
0  0.00632 18.00 2.310 0 0.5380 6.5750 65... 
1  0.02731 0.00 7.070 0 0.4690 6.4210 78...            
2  0.02729 0.00 7.070 0 0.4690 7.1850 61...            
3  0.03237 0.00 2.180 0 0.4580 6.9980 45...                       
4  0.06905 0.00 2.180 0 0.4580 7.1470 54...            
5  0.02985 0.00 2.180 0 0.4580 6.4300 58...            

[505 X 행 1 열]

데이터는 탭으로 구분되어있다. 나는 다음과 같은 DataFrame 형식으로

 CRIM ZN INDUS CHAS NOX  RM AGE  DIS RAD TAX \ 
0  0.00632 18.0 2.31  0 0.538 6.575 65.2 4.0900 1 296.0 
1  0.02731 0.0 7.07  0 0.469 6.421 78.9 4.9671 2 242.0 
2  0.02729 0.0 7.07  0 0.469 7.185 61.1 4.9671 2 242.0 
3  0.03237 0.0 2.18  0 0.458 6.998 45.8 6.0622 3 222.0 
4  0.06905 0.0 2.18  0 0.458 7.147 54.2 6.0622 3 222.0 

[506 행 x 14 개 인치 컬럼]

이를 달성하는 가장 좋은 방법은 무엇을이 DataFrame 은밀한 하시겠습니까?

+0

원하는 데이터 프레임의 숫자가 원래 데이터 프레임의 숫자와 어떤 관련이 있는지, 열 이름의 출처 및 열 4 개가 아닌 이유는 알 수 없습니다. 목적을 이해하지 못합니다. 첫 번째 데이터 프레임의 첫 번째 라인. 제발 좀 더 자세히 설명해주세요. – DyZ

+0

네, 원하는 데이터 프레임 번호는 샘플입니다. 더 명확한 데이터 프레임 예제를 입력하지 않은 것이 좋지 않습니다. 생각은 [505 행 x 1 열]의 원본 데이터 프레임을 [506 행 x 14 열]로 변환하는 것입니다. .. 많은 감사 – ianch

+0

우리는 당신의 모범이 최소한이고 일관성이 있다고 기대합니다. 고쳐주세요. – DyZ

답변

0

read_csv에서 기본 구분 기호 (,)를 변경하지 않는 것 같습니다.

names = ['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX'] 
df = pd.read_csv('filename.csv', sep='\t', names = names) 
및 공백

세퍼레이터 :

해결 탭 세퍼레이터이다 csv 더 헤더가없는 경우

names = ['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX'] 
df = pd.read_csv('filename.csv', sep='\s+', names = names) 

df = pd.read_csv('filename.csv', delim_whitespace=True, names = names) 

names 파라미터는 새로운 컬럼 이름을 정의한다.

+0

read_csv는 분명합니다. 그러나 데이터 프레임 자체 내에서이 작업을 수행하려고합니다. 탭 구분 기호 a에 데이터베이스를 유출하는 방법을 알아 냈습니다. 건배 – ianch

+0

좋아,'df1 = df [0] .str.split (expand = True)'- 열 이름이'0'이거나'df1 = df [ '0']. str .split (expand = True)'column이 문자열 0이면. – jezrael

0

많은 감사 컬럼에, 당신은 쉽게 분할 문자열을 사용하여 파일에서 데이터를 읽고 (원본 게시물에 덧글에 설명 된대로이 경우 pd.read_csv()이 더 나은 선택이 될 것입니다)하지 않는 한 :

data = data[0].str.split().apply(pd.Series) 

이제 data.columns=("CRIM","ZN","INDUS",...)과 함께 열 이름을 추가하면 모두 설정됩니다.

0

어떻게 그런

df.apply(lambda x: pd.Series(x.split('\t'))) 

또는 뭔가

어떻습니까?

관련 문제