Как извлечь строки из кадра данных на основе значения столбца в несколько файлов CSV? - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть следующий фрейм данных:

data = {'participant_id': [1, 100, 125, 125, 1, 100], 
        'test_day':['Day_1', 'Day_1', 'Day_12', 'Day_14', 'Day_4', 'Day_4'], 
        'favorite_color': ['blue', 'red', 'yellow', 'green', 'yellow', 'green'],  
        'grade': [88, 92, 95, 70, 80, 30]}
df = pd.DataFrame(data, columns = ['participant_id', 'test_day', 'favorite_color', 'grade'])

Он содержит 10000 строк и содержит данные для 400 участников теста, помеченных уникальными и совершенно случайными идентификаторами, которые хранятся в столбце «member_id».Моя задача - создать кадры данных для отдельных лиц (по идентификатору участника), а затем сохранить их в отдельных файлах csv (всего 400).

Я пытался выяснить, как это сделать, уже пару дней, но безуспешно.

Можете ли вы помочь мне?

Я все еще учусь программировать и пытаюсь применить знания из курса по науке о данных.Я использую Pandas и обычно я получаю доступ к данным об отдельном участнике с помощью df.loc, я также создал список всех идентификаторов member_id, но я не знаю, как объединить оба, чтобы автоматически достичь желаемого результата.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Решение от @jpp великолепно.Моя адаптация, основанная на вашем решении:

import pandas as pd
import numpy as np

data = {'participant_id': [1, 100, 125, 125, 1, 100], 
        'test_day':['Day_1', 'Day_1', 'Day_12', 'Day_14', 'Day_4', 'Day_4'], 
        'favorite_color': ['blue', 'red', 'yellow', 'green', 'yellow', 'green'],  
        'grade': [88, 92, 95, 70, 80, 30]
       }

col = list(data.keys())
df = pd.DataFrame(data, columns = col)

for part_id, df_id in df.groupby('participant_id'):
  df_id.to_csv(f'{part_id}.csv',index=False)
0 голосов
/ 25 ноября 2018

groupby + to_csv

Вы можете группировать по определенному полю и повторять:

for part_id, df_id in df.groupby('participant_id'):
    df_id.to_csv(f'{part_id}.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...