Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

export to csv based on column values in pandas

i have a df like this

user = pd.DataFrame({'User':['101','101','101','102','102','101','101','102','102','102'],'Country':['India','Japan','India','Brazil','Japan','UK','Austria','Japan','Singapore','UK'],'Count':[50,1,2,5,6,89,10.9,10,5,6]})

and exporting each user data into seperate csv file like this

user_101 = user[user['User'] == '101']
user_102 = user[user['User'] == '102']

user_101.to_csv('user_101.csv',sep=',')
user_102.to_csv('user_102.csv',sep=',')

how to automate this instead of manually passing the userid's automatically picks the values from User column and export to respective user name files. Thanks

like image 541
Kumar AK Avatar asked Dec 18 '25 23:12

Kumar AK


2 Answers

Using a for loop with groupby and f-strings (Python 3.6+):

for user_id, group in user.groupby('User'):
    group.to_csv(f'user_{user_id}.csv', sep=',')
like image 171
jpp Avatar answered Dec 20 '25 12:12

jpp


You can loop over unique values of User:

import pandas as pd

user = pd.DataFrame({'User':['101','101','101','102','102','101','101','102','102','102'],'Country':['India','Japan','India','Brazil','Japan','UK','Austria','Japan','Singapore','UK'],'Count':[50,1,2,5,6,89,10.9,10,5,6]})

for u in user['User'].unique():
    file_name = 'user_{0}.csv'.format(u) 
    user[user['User'] == u].to_csv(file_name, sep=',') 
like image 32
Tomas Farias Avatar answered Dec 20 '25 12:12

Tomas Farias



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!