给定:一个具有"特殊"第一行的大文本数据文件(例如CSV格式)(例如,字段名称).
通缉:相当于coreutils split -l命令,但附加要求原始文件中的标题行出现在每个结果片段的开头.
我猜一些混合物split并且head会做的伎俩?
我有一个dask数据帧(df),大约有2.5亿行(来自一个10Gb的CSV文件).我有另外ndf25,000行的pandas dataframe().我想通过重复每个项目10,000次,将第一列pandas数据帧添加到dask数据帧.
这是我试过的代码.我已将问题缩小到更小的尺寸.
import dask.dataframe as dd
import pandas as pd
import numpy as np
pd.DataFrame(np.random.rand(25000, 2)).to_csv("tempfile.csv")
df = dd.read_csv("tempfile.csv")
ndf = pd.DataFrame(np.random.randint(1000, 3500, size=2500))
df['Node'] = np.repeat(ndf[0], 10)
Run Code Online (Sandbox Code Playgroud)
使用此代码,我最终得到一个错误.
ValueError:并非所有分区都已知,无法对齐分区.请用于
set_index设置索引.
我可以执行a reset_index()后跟a set_index()来df.known_divisions True生成dask数据帧.但这是一项耗时的操作.有没有更好的方法来做我想做的事情?我可以用熊猫本身做到这一点吗?
最终目标是从ndf任何相应行的位置查找df与某些条件匹配的行.
我有一个巨大的csv文件,1米行..我想知道是否有办法将此文件拆分为较小的文件,但保留所有文件的第一行(csv标头).
它似乎split非常快,但也非常有限,就像你不能为.csv这样的文件名添加后缀.
split -l11000 products.csv file_
Run Code Online (Sandbox Code Playgroud)
是否有一种有效的方法来完成这项任务.csv?一行命令会很棒.
我有一些非常大的 gzip 压缩 csv 文件( 的压缩输出mysqldump)——每个大约 65 GB。
我需要将它们分成每个小于 4 GB(压缩后)的压缩块,记住每个 csv 文件中都存在引用的换行符。
在'nix 命令行(例如在Debian)上执行此操作的最有效方法是什么?
与此SO类似,尽管响应没有正确考虑引用的换行符。