My DataFrame
df= pandas.DataFrame({
"City" :["Chennai","Banglore","Mumbai","Delhi","Chennai","Banglore","Mumbai","Delhi"],
"Name" :["Praveen","Dhansekar","Naveen","Kumar","SelvaRani","Nithya","Suji","Konsy"]
"Gender":["M","M","M","M","F","F","F","F"]})
when printed it appears like this, df=
| City | Name | Gender |
|---|---|---|
| Chennai | Praveen | M |
| Banglore | Dhansekar | M |
| Mumbai | Naveen | M |
| Delhi | Kumar | M |
| Chennai | SelvaRani | F |
| Banglore | Nithya | F |
| Mumbai | Suji | F |
| Delhi | Konsy | F |
I want to save the data in separate DataFrame as follows:
Chennai=
| City | Name | Gender |
|---|---|---|
| Chennai | Praveen | M |
| Chennai | SelvaRani | F |
Banglore=
| City | Name | Gender |
|---|---|---|
| Banglore | Dhansekar | M |
| Banglore | Nithya | F |
Mumbai=
| City | Name | Gender |
|---|---|---|
| Mumbai | Naveen | M |
| Mumbai | Suji | F |
Delhi=
| City | Name | Gender |
|---|---|---|
| Delhi | Kumar | M |
| Delhi | Konsy | F |
My code is:
D_name= sorted(df['City'].unique())
for i in D_name:
f"{i}"=df[df['City']==I]
The dataset have more than 100 Cities.How do I write a for loop in python to get output as multiple data frame?
CodePudding user response:
You can groupby and create a dictionary like so:
dict_dfs = dict(iter(df.groupby("City")))
Then you can directly access individual cities:
Delhi = dict_dfs["Delhi"]
print(Delhi)
# result:
City Name Gender
3 Delhi Kumar M
7 Delhi Konsy F
CodePudding user response:
You could do something like this:
groups = df.groupby(by='City')
Bangalore = groups.get_group('Bangalore')
