2017-08-09 168 views
1

我想將此列分爲三個部分:城市,州,郵編。我正在考慮這樣的事情:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.split.html。但是,我認爲專欄首先需要成爲一個系列?任何幫助都會很棒。將數據幀列拆分成相等部分

import pandas as pd 
suite_list 
hospital_list =pd.DataFrame(suite_list, columns=['name', 'address_1', 'address_2', 'city_state_zip', 'phone']) 

city_state_zip例如=薩瓦里塔,AZ,85629.我想 'Sahuarite', 'AZ', '85629',以顯示爲在數據幀單獨列。

回答

0

你可以嘗試這樣的事情,

df = pd.DataFrame({'Name' : ('john','doe','smith'), 'address_1' : (105,305,505), 'address_2' : ('path','lane','route'),\ 
      'city_state_zip': ('Sahuarita, AZ, 85629', 'Sahuarita1, AZ1, 75629', 'Sahuarita2, AZ2, 65629')}) 

df

 Name address_1 address_2 city_state_zip 
0  john 105    path Sahuarita, AZ, 85629 
1  doe 305    lane Sahuarita1, AZ1, 75629 
2  smith 505    route Sahuarita2, AZ2, 65629 

,然後嘗試,

df["col1"],df["col2"],df["col3"] = zip(*df["city_state_zip"].str.split().tolist()) 

輸出df

 Name address_1 address_2 city_state_zip  col1  col2  col3 
    0 john 105  path Sahuarita, AZ,85629  Sahuarita AZ  85629 
    1 doe 3 05  lane Sahuarita1, AZ1,5629 Sahuarita1 AZ1 75629 
    2 smith 505  route Sahuarita2, AZ2,65629 Sahuarita2 AZ2 65629 

這應該給你想找什麼。

+0

感謝您的支持!我認爲這與我想要的非常接近。它似乎越來越分裂('',1)絆倒。如果我去了hospitals_complete.city_state_zip.values.tolist(),它會生成一份我想要在city_state_zip中拆分的長列表。我現在只想把它們分成新的列。那有意義嗎? –

+0

我仍然需要保留原始列。 –

+0

我收回它!有效。我只需要分成','和'',1,因爲這個分裂了一些更長的城市,所以我得到了4列而不是3。 –