col_1 col_2 date_col
a b 20-12-2021
a b 20-12-2021
a2 b2 21-12-2021
.. .. ...
因此row1
和row2
将转到名为20_12_2021.CSV
的CSV,row3
将转到21_12_2021.CSV
。我现在正在做的是使用Python获取结果,然后逐行循环,然后确定结果的位置,但这需要大量的时间。
有没有更好更优化的方法来做到这一点?
我喜欢这种解决方案,您可以使用df.groupby
和date_col
列,这将使用映射器或在默认情况下表示行的轴0
上的一系列列对DataFrame进行分组。
for name, g in df.groupby('date_col'):
g.to_csv(f'{name}.csv', index=False)
Result:
$ cat 20-12-2021.csv <-- CSV file created
col_1,col_2,date_col
a,b,20-12-2021
a,b,20-12-2021
$ cat 21-12-2021.csv <-- CSV file created
col_1,col_2,date_col
a2,b2,21-12-2021
或
df.groupby('date_col').apply(lambda x: x.to_csv('{}.csv'.format(x.name), index=False))
注意:如果你对MYSQL有一百万行的效率感到好奇,那么这里有一个很好的答案,Pandas现在内置了@ThePhysicist对分块加载的支持。
问题内容: 我有250MB以上的巨大的CSV文件要上传 文件格式为,数据可能看起来像 我想基于划分文件,因此输出应为n个文件,其中 输出量 和 和 我该如何有效地做到这一点? 问题答案: 如果文件已经按排序,则可以执行以下操作:
我的问题是: > 如何使其与较大的文件一起工作? 有什么办法能让它快一点吗? 我的电脑有8GB的RAM,运行64位Windows 7,处理器是3.40GHz(不确定你需要什么信息)。
问题内容: 我目前正在尝试从Python 2.7中的.csv文件中读取数据,该文件最多包含100万行和200列(文件范围从100mb到1.6gb)。对于少于300,000行的文件,我可以(非常缓慢地)执行此操作,但是一旦超过该行,就会出现内存错误。我的代码如下所示: 在getstuff函数中使用else子句的原因是,所有符合条件的元素都将一起列在csv文件中,因此当我经过它们时,为了节省时间,我离
问题内容: 我有一个很大的csv文件,因此无法将它们全部读入内存。我只想阅读和处理其中的几行内容。所以我正在Pandas中寻找一个可以处理此任务的函数,基本的python可以很好地处理此任务: 但是,如果我在熊猫中这样做,我总是会读第一行: 我正在寻找一些更简单的方法来处理熊猫中的这项任务。例如,如果我想读取1000到2000的行。如何快速执行此操作? 我想使用熊猫,因为我想将数据读入数据框。 问
如何将CSV文件导入MySQL表?我想把第一行数据用作列名。 我读到如何将CSV文件导入MySQL表?,但是唯一的答案是使用GUI而不是shell?
我们需要将CSV文件数据转储到Cassandra DB--该文件包含带有特殊字符的混合大小写列名(例如:-Actual_Values, 序列号。no,数量)。 创建了一个包含这3列的Cassandra表,但是当通过PutCassandraRecord处理器从NIFI转储数据时,它的抛出错误为invalidQueryException:undefined column actual_values。