2017-05-12 6 views
1

나는이 보이는 목록의 목록을 얻기 위해 노력하고 있어요로 변환 (의이 '모두'를 부르 자) dataframe에 다음과 같이 것 :, 목록의 목록을 가지고 목록을 분할 한 다음 dataframe

for index, line in enumerate(All): 
    All[index] = line[0].split(','), line[1:] 

pd.DataFrame(All) 

하지만이 반환됩니다

COUNTY   STATE  FIPS1 FIPS2 
'Albany County' 'Wyoming' '56' '001' 
'Big Horn County' 'Wyoming' '56' '003' 
'Campbell County' 'Wyoming' '56' '005' 

이 나는리스트의 목록은 지금까지 무엇을 가지고 ing :

      0   1 
0  [Albany County, Wyoming] [56, 001] 
1  [Big Horn County, Wyoming] [56, 003] 
2  [Campbell County, Wyoming] [56, 005] 

미리 도움을 청하십시오!

답변

2
All = [ 
    ['Albany County, Wyoming', '56', '001'], 
    ['Big Horn County, Wyoming', '56', '003'], 
    ['Campbell County, Wyoming', '56', '005'] 
] 

pd.DataFrame(
    [line[0].split(', ') + line[1:] for line in All], 
    columns=['COUNTY', 'STATE', 'FIPS1', 'FIPS2'] 
) 

      COUNTY STATE FIPS1 FIPS2 
0 Albany County Wyoming 56 001 
1 Big Horn County Wyoming 56 003 
2 Campbell County Wyoming 56 005 

또는

df = pd.DataFrame(All, columns=['COUNTY, STATE', 'FIPS1', 'FIPS2']) 

col = 'COUNTY, STATE' 
df[col].str.extract(
    '(?P<COUNTY>.*), (?P<STATE>.*)', expand=True 
).join(df.drop(col, 1)) 

      COUNTY STATE FIPS1 FIPS2 
0 Albany County Wyoming 56 001 
1 Big Horn County Wyoming 56 003 
2 Campbell County Wyoming 56 005 
+0

미안 해요, 코드의 마지막 줄을 떠났다. 방금 편집했습니다 (pd.DataFrame (All)). – jtam

+0

@ user2970409'line [0] .split (','), line [1 :]'을'line [0] .split (',') + line [1 :]'로 바꾼다. – piRSquared

+0

첫 번째 작품! 도움에 정말 감사드립니다. – jtam

0

당신이 시도 할 수 있습니다 :

lst = [['Albany County, Wyoming', '56', '001'], 
['Big Horn County, Wyoming', '56', '003'], 
['Campbell County, Wyoming', '56', '005']] 

df = pd.DataFrame(lst) 
df.columns = ['COUNTY_STATE', 'FIPS1', 'FIPS2'] 
print(df) 
       COUNTY_STATE FIPS1 FIPS2 
0 Albany County, Wyoming 56 001 
1 Big Horn County, Wyoming 56 003 
2 Campbell County, Wyoming 56 005 

ALL = pd.DataFrame(df['COUNTY_STATE'].str.split(',').tolist(), columns = ['COUNTY','STATE']) 
ALL[['FIPS1', 'FIPS2']] = df[['FIPS1', 'FIPS2']] 
print(ALL) 
      COUNTY  STATE FIPS1 FIPS2 
0 Albany County Wyoming 56 001 
1 Big Horn County Wyoming 56 003 
2 Campbell County Wyoming 56 005 
+0

감사! 다른 솔루션을 보는 것이 항상 좋습니다. – jtam