Сохранить группы панд в отдельных файлах CSV - PullRequest
0 голосов
/ 13 июня 2018

Возможно ли вернуть несколько df в независимый csv's без использования .to_csv.Используя код ниже, я вручную возвращаю нужные значения и экспортирую их в csv.Это нормально, если у меня есть только несколько файлов для экспорта, но если существует множество файлов или имен файлов, которые постоянно меняются в наборах данных, это может быть громоздким.

Есть ли более эффективный способ вернуть желаемые значения, если у вас естьконкретный список значений и экспортировать их в CSV?

import pandas as pd

d = ({
    'C' : ['08:00:00','XX','08:10:00','XX','08:41:42','XX','08:50:00','XX', '09:00:00', 'XX','09:15:00','XX','09:21:00','XX','09:30:00','XX','09:40:00','XX'],
    'D' : ['Home','Home','Home','Home','Away','Away','Shops','Shops','Away','Away','Shops','Shops','Home','Home','Away','Away','Home','Home'],
    'E' : ['Num:','','Num:','','Num:','','Num:','','Num:', '','Num:','','Num:','','Num:', '','Num:', ''],
    'F' : ['1','','1','','1','','1','','1', '','2','','2','','1', '','2',''],   
    'A' : ['A','','A','','A','','A','','A','','A','','A','','A','','A',''],           
    'B' : ['Stop','','Res','','Stop','','Start','','Res','','Stop','','Res','','Start','','Start','']
    })

df = pd.DataFrame(data=d)

#List of designated places
values = ['Home', 'Away', 'Shops']

#Export to csv
Home = df.loc[df['D'] == 'Home'].to_csv('Home.csv')
Away = df.loc[df['D'] == 'Away'].to_csv('Away.csv')
Shops = df.loc[df['D'] == 'Shops'].to_csv('Shops.csv')

1 Ответ

0 голосов
/ 13 июня 2018

Отфильтруйте с помощью isin, затем выполните groupby для "D" и итеративно сохраните в CSV.

incl = ['Home', 'Away', 'Shops']    
for k, g in df[df['D'].isin(incl)].groupby('D'):
    g.to_csv(f'{k}.csv')  # '{}.csv'.format(k)

Этап фильтрации isin важен тогда и только тогда, когда у вас есть больше категорийчем то, что вы хотите сохранить.Если это не так, и вы хотите сохранить все, ваше решение упростит:

for k, g in df.groupby('D'):
    ...
...