ruddy simonpour
ruddy simonpour

Reputation: 153

Is there any function which i can split values in a table into smaller subgroups?

index   city       state_id   state_name       county_name      zip_codes

12846   Alpine         CA         California    San Diego      91901 91903  

12860   Granite Hills   CA       California    San Diego        92021 92019

12975   Casa de Oro-Mount  CA   California     San Diego    91977 91941 92020 91976 

i need to split the zip codes into subgroups but i want to have same rows with same values for instance :

index   city       state_id   state_name       county_name      zip_codes

12846   Alpine         CA         California    San Diego      91901 
12846   Alpine         CA         California    San Diego      91903    

12860   Granite Hills   CA       California    San Diego        92021 
12860   Granite Hills   CA       California    San Diego        92019

12975   Casa de Oro-Mount  CA   California     San Diego         91977  
12975   Casa de Oro-Mount  CA   California     San Diego         91941 
12975   Casa de Oro-Mount  CA   California     San Diego         92020 
12975   Casa de Oro-Mount  CA   California     San Diego         91976

Upvotes: 2

Views: 49

Answers (1)

jezrael
jezrael

Reputation: 863291

Solution for pandas 0.25+ - use Series.str.split with DataFrame.assign to same column for lists and then use DataFrame.explode:

df1 = df.assign(zip_codes = df['zip_codes'].str.split()).explode('zip_codes')
print (df1)
                    city state_id  state_name county_name zip_codes
index                                                              
12846             Alpine       CA  California   San Diego     91901
12846             Alpine       CA  California   San Diego     91903
12860      Granite Hills       CA  California   San Diego     92021
12860      Granite Hills       CA  California   San Diego     92019
12975  Casa de Oro-Mount       CA  California   San Diego     91977
12975  Casa de Oro-Mount       CA  California   San Diego     91941
12975  Casa de Oro-Mount       CA  California   San Diego     92020
12975  Casa de Oro-Mount       CA  California   San Diego     91976

Upvotes: 1

Related Questions