2017-05-12 3 views
1

私はこのようになりますリストのリストを取得しようとしていますに変換(のが、この「すべて」を呼びましょう)このようになります。データフレームへ:、リストのリストを取り、リストを分割して、データフレーム

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

これは私がリストのリストについては、これまで持っているものです。

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

pd.DataFrame(All) 

しかし、これはリターンですお問い合わせ:

      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(すべて))。 – 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

関連する問題