我有以下数据框:
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行,包含“ participant_id”列中存储的具有唯一且完全随机ID的400名测试参与者的数据。我的任务是为个人创建数据框(每个“ participant_id”),然后将其保存到单独的csv文件(共400个)中。
我已经尝试了几天,但没有运气。
能帮我吗?
我仍在学习如何编程以及尝试应用数据科学课程中的知识。我使用的是Pandas,通常我会使用df.loc访问有关单个参与者的数据,我还创建了所有partner_id的列表,但是我不知道如何将两者结合起来以自动实现所需的结果。
答案 0 :(得分:2)
groupby
+ to_csv
您可以按特定字段分组并进行迭代:
for part_id, df_id in df.groupby('participant_id'):
df_id.to_csv(f'{part_id}.csv')
答案 1 :(得分:1)
@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)