按列值将数据框拆分为 Excel 文件

新手上路,请多包涵

我有一个像这样的数据框

>>> df
    id    name    score    subject
    0001   'bob'    100    'math'
    0001   'bob'     67    'science'
    0001   'bob'     63    'bio'
    0002  'jack'     67    'math'
    0002  'jack'     98    'science'
    0002  'jack'     90    'bio'
    0003  'jack'     60    'math'
    0003  'jack'     78    'science'
    0003  'rose'     87    'bio'

我想将每个 id 的数据过滤到一个新的 DataFrame 中,并根据其 ID 写入 Excel 文件。 So, the above df will be filtered into 3 DataFrames whose ids are 0001 , 0002 and 0003 ,并且所有 DataFrame 都将写入单独的 excel 文件。

原文由 GoingMyWay 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 465
2 个回答

首先,获取唯一 ID 值的列表

uniquevalues = np.unique(df[['id']].values)

然后对其进行迭代并在 CSV 文件中导出具有这些 ID 的每个数据帧

for id in uniquevalues:
    newdf = df[df['id'] == id]
    newdf.to_csv("dataframe "+id+".csv", sep='\t')

如果您只有这三个 ID,那么您只需传递 for 并手动执行相同的操作

newdf = df[df['id'] == "0001"]
newdf.to_csv("dataframe0001.csv", sep='\t')

原文由 Tasos 发布,翻译遵循 CC BY-SA 3.0 许可协议

IIUC,在您的示例中,您可以通过 id 过滤数据帧:

 df1 = df[df['id'] == 0001]

和其他 id 值一样。

原文由 Fabio Lamanna 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题