我在处理大 CSV 文件(大约 4.000.000 行)时遇到问题,我正在寻找一种方法将此类文件分成较小的文件。
感谢您提供的任何想法。
您没有提及您正在使用哪个操作系统。在 UNIX/Linux 系统中,有
split
命令,您可以按如下方式使用它来将文件拆分为两行的块:
Prompt> split -l 2 file.txt testfile
Prompt> ls -ltra
...
-rwxrwxrwx 1 user user 64 Dec 22 15:47 testfileaa
-rwxrwxrwx 1 user user 64 Dec 22 15:47 testfileab
-rwxrwxrwx 1 user user 1 Dec 22 15:47 testfileac
...
如果您使用的是 Windows,您可以安装 WSL 应用程序(适用于 Linux 的 Windows 子系统),它会在您的计算机上安装类似 Linux 的程序,让您能够体验 Linux 命令行的所有神奇功能 :-)
正如Robert正确提到的,第二个文件不包含标头,但一个简单的
head -n 1 testfile
可以处理这个问题。
还有许多其他方法可以处理类似大小的 CSV 文件。
以下假设您必须使用 Excel 来处理此文件。
使用数据>获取和转换数据>来自文本/CSV
选择文件后,选择“转换数据”以在 Power Query 编辑器中打开查询。
从这里,您可以简单地使用“主页”>“关闭并加载到”>并进行如下配置:
此后,您将能够操作 Power Pivot 数据模型中的数据并使用数据透视表和数据透视图来分析数据。
或者,如果必须将数据加载到工作表中,则可以在使用“主页”>“关闭并加载”并选择“表格”之前,在 Power Query 编辑器中将数据筛选为可管理的大小。
如果您确实必须实际拆分数据,则可以创建引用主查询的单独查询,每个查询在某些列上都有一个过滤器。
在 Power 查询编辑器中,右键单击您在文件上创建的查询,然后选择“引用”。
这将创建一个新查询,您可以按照上述方式进行过滤和加载。
您可以根据需要重复此操作多次。