如何根据列值从datatframe提取行到多个CSV文件?

2024-05-15 09:55:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

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个测试参与者的数据,这些参与者被标记为唯一且完全随机的ID,存储在“participant_ID”列中。我的任务是为个人创建数据帧(每个“参与者”id),然后将它们保存到单独的csv文件中(总共400个)。在

几天来我一直在想办法做这件事,但没有成功。在

你能帮帮我吗?在

我仍在学习如何编程,并尝试应用数据科学课程中的知识。我使用的是Pandas,通常我通过航向位置,我也创建了一个所有参与者的列表,但我不知道如何将两者结合起来以自动获得所需的结果。在


Tags: 数据testiddatagreenblue参与者favorite
2条回答

^{}+^{}

可以按特定字段分组并迭代:

for part_id, df_id in df.groupby('participant_id'):
    df_id.to_csv(f'{part_id}.csv')

@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)

相关问题 更多 >