简体   繁体   English

将数据框列分成相等的部分

[英]split a dataframe column into equal parts

I want to break this column into three components: city, state, zip. 我想将此专栏分为三部分:城市,州,邮编。 I was considering something like this: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.split.html . 我当时正在考虑这样的事情: https : //pandas.pydata.org/pandas-docs/stable/genic/pandas.Series.str.split.html However, I think the column needs to be a series first? 但是,我认为该专栏需要先发表系列文章? Any help would be great. 任何帮助都会很棒。

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 example = Sahuarita, AZ, 85629. I want 'Sahuarite', 'AZ,' '85629' to show up as individual columns in the DataFrame. city_state_zip示例=亚利桑那州Sahuarita,85629。我希望“ Sahuarite”,“ AZ”,“ 85629”在DataFrame中显示为单独的列。

You can try something like this, 你可以尝试这样

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

and then try, 然后尝试

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

the output df will be 输出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

This should give what are you looking for. 这应该给你想要的东西。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM