2013-03-01 3 views
0

연구용으로 정리할 수있는 탭 형식 데이터 집합이 있습니다. 각 데이터 셋은 전형적인 깔끔한 열씩 형태로하지 않지만 (아래와 같이) 각 군별로 탭 형식새 문서를 만들려면 탭 형식 데이터의 일부를 복사하여 붙여 넣으십시오.

1CURRENT DATE: XXX    AGE,SEX, RACE AND ETHNICITY OF PERSONS PAGE 1 
BEGINNING DATE FOR DATA TOTALS: 01/83     COUNTY 001 
ENDING DATE FOR DATA TOTALS: 12/83                  RECORD COUNT 36 
       Gender  Age_20 Age_21  Age_22 Age_23 Asian Hispanic White 
Robbery  F   1   2   2  2   3   3   3 
       M   3   3   2  2   4   3   3 
Fraud   F   1   2   2  2   3   3   2 
       M   2   3   2  2   4   3   3 
Arson   F   1   2   2  2   3   3   3 
       M   4   3   2  2   4   3   4 

1CURRENT DATE: XXX    AGE,SEX, RACE AND ETHNICITY OF PERSONS PAGE 4 
BEGINNING DATE FOR DATA TOTALS: 01/83     COUNTY 002 
ENDING DATE FOR DATA TOTALS: 12/83                  RECORD COUNT 36 
       Gender  Age_20 Age_21  Age_22 Age_23 Asian Hispanic White 
Robbery  F   1   2   2  2   3   3   3 
       M   2   3   2  2   4   4   3 
Fraud   F   1   2   2  2   3   3   2 
       M   2   3   2  2   4   6   3 
Arson   F   1   2   2  2   3   3   3 
       M   4   3   2  2   4   3   4 

1CURRENT DATE: XXX    AGE,SEX, RACE AND ETHNICITY OF PERSONS PAGE 7 
BEGINNING DATE FOR DATA TOTALS: 01/83     COUNTY 003 
ENDING DATE FOR DATA TOTALS: 12/83                  RECORD COUNT 36 
       Gender  Age_20 Age_21  Age_22 Age_23 Asian Hispanic White 
Robbery  F   1   2   2  2   3   3   3 
       M   3   3   2  2   4   3   3 
Fraud   F   1   2   1  4   3   3   2 
       M   2   3   2  2   4   3   3 
Arson   F   1   2   4  2   3   3   3 
       M   4   3   2  2   4   3   4 

는 I 직접 의한 추가 분석을 위해 이러한 Excel로 데이터 세트 또는 STATA를 가져올 수 없다 그것의 탭 유형 본질에. 내가 무엇을 계획하는 복사 각 카운티의 ID를 붙여 넣는 것입니다 (예 : COUNTY 003, COUNTY 002 등) :

   Gender  Age_20 Age_21  Age_22 Age_23 Asian Hispanic White County 
Robbery  F   1   2   2  2   3   2   3  001 
Robbery  F   1   2   2  2   2   3   3  002 
Robbery  F   1   2   2  2   3   3   3  003 

범죄의 특정 유형이 같은 새 열 같은 데이터 집합을 만들 수 있습니다 이 새 데이터 세트에서 데이터를 더 정리합니다.

온라인으로 검색 한 결과 파이썬이 실제로 파일의 특정 부분을 복사하여 새로운 문서에 붙여 넣을 수 있음을 발견했습니다. 하지만 저는 Python을 처음 접했을뿐입니다. 경험은 Stata와 SPSS를 중심으로합니다. 이 코드 복사 및 붙여 넣기 작업을 수행 할 코드를 정확히 모르겠습니다.

답변

0

아마도 pandas을보고 싶을 것입니다. 세부 사항은 형식에 따라 다르지만 데이터를 더 깨끗한 것으로 마사지하는 것은별로 도움이되지 않습니다. 이 다음을 수행 할 예뻐 덜 하드 가지가 있지만 여기에 거의 스트림의 의식 예입니다 :

import pandas as pd 

# read in a fixed-width file 
df = pd.read_fwf("crime.tsv", widths=[14] + [10]*8, header=None) 
# clean up the strings 
df = df.applymap(lambda x: x.strip() if isinstance(x, basestring) else x) 

# make a new column 
df["County"] = None 
# move over the county information 
df["County"][df[5] == "COUNTY"] = df[6] 
# fill the county info forwards into the empty places 
df["County"].fillna(method='ffill', inplace=True) 

# fill the crime information forwards 
df[0].fillna(method='ffill', inplace=True) 

# reset the columns from one of the examples 
df.columns = ["Crime"] + list(df.ix[3,1:-1]) + ["County"] 
# get rid of any of the headings left in the table 
df = df[~(df["Gender"] == "Gender")] 

# toss anything which still has empty cells 
df = df.dropna() 

# reset the index, and fix the types 
df = df.set_index(["Crime", "Gender", "County"]).astype(int) 
df = df.reset_index() 

우리가 깔끔한 모든 종류의 것들을 할 수 있습니다 후

>>> df 
     Crime Gender County Age_20 Age_21 Age_22 Age_23 Asian Hispanic White 
0 Robbery  F 001  1  2  2  2  3   3  3 
1 Robbery  M 001  3  3  2  2  4   3  3 
2  Fraud  F 001  1  2  2  2  3   3  2 
3  Fraud  M 001  2  3  2  2  4   3  3 
4  Arson  F 001  1  2  2  2  3   3  3 
5  Arson  M 001  4  3  2  2  4   3  4 
6 Robbery  F 002  1  2  2  2  3   3  3 
7 Robbery  M 002  2  3  2  2  4   4  3 
8  Fraud  F 002  1  2  2  2  3   3  2 
9  Fraud  M 002  2  3  2  2  4   6  3 
10 Arson  F 002  1  2  2  2  3   3  3 
11 Arson  M 002  4  3  2  2  4   3  4 
12 Robbery  F 003  1  2  2  2  3   3  3 
13 Robbery  M 003  3  3  2  2  4   3  3 
14 Fraud  F 003  1  2  1  4  3   3  2 
15 Fraud  M 003  2  3  2  2  4   3  3 
16 Arson  F 003  1  2  4  2  3   3  3 
17 Arson  M 003  4  3  2  2  4   3  4 

을 생산하고있다.

+0

안녕하세요 DSM, 답변 해 주셔서 대단히 감사합니다. 매우 도움이됩니다. –

+0

안녕 DSM, 답변 해 주셔서 대단히 감사합니다. 방금 일부 데이터 세트가 동일한 파일에서 다른 variable_names가있는 탭을 가지고 있다는 것을 알았습니다. 예를 들어, 일부 탭은 나의 예에서와 같이 연령과 민족성을 가지고 있습니다. 위치가있는 다른 탭. 두 변수는 같은 변수 이름을 공유하지 않지만 같은 열에 있으므로 코드에 직접 적용 할 수는 없습니다. 여전히 나이와 민족으로 탭을 저장 한 다음 코드를 적용해야합니다. 위치가있는 탭에서 연령대 및 민족으로 만 탭을 분리하는 방법에 대한 몇 가지 힌트를 제공 할 수 있습니까? 대단히 감사드립니다. –

관련 문제