2017-08-09 121 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。 –