【问题标题】:Split Multiple csv files into sud-directories based on unique value they share根据共享的唯一值将多个 csv 文件拆分为 sud 目录
【发布时间】:2021-06-05 04:08:37
【问题描述】:

我有一个小问题,如果可能的话希望得到一些帮助。

我有 2 个共享一些唯一值的大型 csv 文件,我想按字段 contentcontentnum 中的唯一值拆分记录。然后,我想创建一个具有唯一值作为文件夹名称的子目录,例如 wax2wax18 但将 2 个新数据集保存为相同的父文件名 large1.csvlarge2.csv。如果子目录已经存在,则删除旧文件并写入新文件。

large1.csv

Content,Name,level,type
wax2,John,6,easy
wax2,Bob,12,hard
wax18,James,8,easy
wax18,Smith,16,hard

large2.csv

Contentnum,Color,level,type
wax2,Red,6,easy
wax2,Blue,12,hard
wax18,Blue,8,easy
wax18,Green,16,hard

所以我想拆分上面的两个 csv 文件,并在下面以文件夹名称作为值显示结果,例如 wax2/large1.csv & wax18/large2.csv

文件夹名称:Wax2 文件名:large1.csv

Content,Name,level,type
wax2,John,6,easy
wax2,Bob,12,hard

文件夹名称:Wax18 文件名:large2.csv

Content,Name,level,type
wax18,James,8,easy
wax18,Smith,16,hard

请有人帮我在 python 中执行此操作。谢谢。

我已经走到这一步了。

【问题讨论】:

  • 嗨,到目前为止,您尝试了什么? SO 不应该是一个您可以要求某人为您编写程序的站点,而是一个针对特定编程相关问题的 Q/A 站点。请看how to ask

标签: python pandas dataframe csv split


【解决方案1】:

您可以使用pandascsv 文件加载为数据帧,然后将它们按ContentContentnum 分组,然后循环分组并将它们保存到目录中:

import pandas as pd
import os

df1 = pd.read_csv('large1.csv')
df2 = pd.read_csv('large2.csv')

df1_groups = df1.groupby('Content')
df2_groups = df2.groupby('Contentnum')

for name, group in df1_groups:
  if not os.path.exists(name):
    os.mkdir(name)
  group.to_csv(name + "/large1.csv")

for name, group in df2_groups:
  if not os.path.exists(name):
    os.mkdir(name)
  group.to_csv(name + "/large2.csv")

【讨论】:

  • 非常感谢您的回复!您提供的代码 sn-p 非常有帮助。有没有办法可以在新的拆分文件中加入一滴“内容”和内容编号
  • 您可以在 for 循环中删除这样的列:group = group.drop(['Content'], axis=1)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 2015-05-29
  • 2022-01-12
  • 1970-01-01
  • 2019-06-14
  • 2022-01-16
相关资源
最近更新 更多