当前位置: 首页 > 面试题库 >

如何根据第一列的内容拆分一个巨大的csv文件?

云镜
2023-03-14
问题内容
  • 我有250MB以上的巨大的CSV文件要上传
  • 文件格式为group_id, application_id, reading,数据可能看起来像
1, a1, 0.1
1, a1, 0.2
1, a1, 0.4
1, a1, 0.3
1, a1, 0.0
1, a1, 0.9
2, b1, 0.1
2, b1, 0.2
2, b1, 0.4
2, b1, 0.3
2, b1, 0.0
2, b1, 0.9
.....
n, x, 0.3(lets say)
  • 我想基于划分文件group_id,因此输出应为n个文件,其中n=group_id

输出量

File 1

1, a1, 0.1
1, a1, 0.2
1, a1, 0.4
1, a1, 0.3
1, a1, 0.0
1, a1, 0.9

File2
2, b1, 0.1
2, b1, 0.2
2, b1, 0.4
2, b1, 0.3
2, b1, 0.0
2, b1, 0.9
.....

File n
n, x, 0.3(lets say)

我该如何有效地做到这一点?


问题答案:

如果文件已经按排序group_id,则可以执行以下操作:

import csv
from itertools import groupby

for key, rows in groupby(csv.reader(open("foo.csv")),
                         lambda row: row[0]):
    with open("%s.txt" % key, "w") as output:
        for row in rows:
            output.write(",".join(row) + "\n")


 类似资料:
  • 我的问题是: > 如何使其与较大的文件一起工作? 有什么办法能让它快一点吗? 我的电脑有8GB的RAM,运行64位Windows 7,处理器是3.40GHz(不确定你需要什么信息)。

  • 因此和将转到名为的CSV,将转到。我现在正在做的是使用Python获取结果,然后逐行循环,然后确定结果的位置,但这需要大量的时间。 有没有更好更优化的方法来做到这一点?

  • 嘿,伙计们,我有一个程序,它读取csv文件,随机生成数据并将其转储到另一个csv文件中...现在我有一个csv文件,其中有100列,其中30列属于其他一些数据,但在最后生成时,我想通过附加一些对csv文件通用的公共列将这些数据分割成两个不同的csv文件。这是csv示例数据: 在这种情况下,两个文件都有一个共同点,因此输出数据应该如下所示: 为了得到一个带有所有条件的csv文件,我写了一个代码,这是

  • 问题内容: 我有一个很大的csv文件,因此无法将它们全部读入内存。我只想阅读和处理其中的几行内容。所以我正在Pandas中寻找一个可以处理此任务的函数,基本的python可以很好地处理此任务: 但是,如果我在熊猫中这样做,我总是会读第一行: 我正在寻找一些更简单的方法来处理熊猫中的这项任务。例如,如果我想读取1000到2000的行。如何快速执行此操作? 我想使用熊猫,因为我想将数据读入数据框。 问

  • 问题内容: 当我通过创建zip存档时,是否可以将生成的存档拆分为多个卷? 假设我的整体存档中有个,我想将其拆分为3个文件,每个文件限制为10 MB。 是否有具有此功能的zip API?或任何其他好的方法来实现这一目标? 谢谢Thollsten 问题答案: 检查:http : //saloon.javaranch.com/cgi- bin/ubb/ultimatebb.cgi?ubb=get_top

  • 我有一个数据库,其中多个变量显示为连续的行(如下所示,变量由其标记区分)。因此,它们的值在“值”列中显示为连续行。 现有表格: 对于数据分析,我需要将每个变量的值拆分为单独的列,如下所示。 下面列出了SQLite查询。我曾尝试使用分组标记并平均值,但结果变得过于细粒度,无法使用。 建议将不胜感激!