相关疑难解决方法(0)

如何在Pandas read_csv函数中过滤加载行?

如何使用pandas过滤哪些CSV行加载到内存中?这似乎是一个应该找到的选项read_csv.我错过了什么吗?

示例:我们有一个带有时间戳列的CSV,我们只想加载时间戳大于给定常量的行.

python pandas

85
推荐指数
3
解决办法
5万
查看次数

将几列分组然后在Pandas中聚合一组列(与R的data.table相比,它崩溃了很多)

我对Python世界相对较新,并试图将其用作进行数据分析的备份平台.我通常data.table用于我的数据分析需求.

问题是,当我在大型CSV文件上运行group-aggregate操作(随机,压缩,上传到http://www.filedropper.com/ddataredact_1)时,Python抛出:

分组pandas返回getattr(obj,方法)(*args,**kwds)ValueError:不允许负尺寸

或者(我甚至遇到过......)

文件"C:\ Anaconda3\lib\site-packages\pandas\core\reshape\util.py",第65行,在cartesian_product中为i,x在枚举(X)中文件"C:\ Anaconda3\lib\site- packages\pandas\core\reshape\util.py",第65行,in为i,x为枚举(X)]文件"C:\ Anaconda3\lib\site-packages \numpy\core\fromnumeric.py",line 445,重复返回_wrapfunc(a,'repeat',重复,轴=轴)文件"C:\ Anaconda3\lib\site-packages \numpy\core\fromnumeric.py",第51行,在_wrapfunc中返回getattr(obj ,方法)(*args,**kwds)MemoryError

我花了三天时间尝试减小文件大小(我能够将大小缩小89%),添加断点,调试它,但我无法取得任何进展.

令人惊讶的是,我想data.table在R 中运行相同的组/聚合操作,并且它几乎不需要1秒钟.此外,我没有做任何数据类型转换等,建议在https://www.dataquest.io/blog/pandas-big-data/.

我还研究了其他线程:避免大型Pandas DataFrame上的GroupBy的内存问题,Pandas:df.groupby()对于大数据集来说太慢了.任何替代方法?,和pandas groupby与大csv文件上的sum()?.似乎这些线程更多的是关于矩阵乘法.如果您不将此标记为重复,我将不胜感激.

这是我的Python代码:

finaldatapath = "..\Data_R"
ddata = pd.read_csv(finaldatapath +"\\"+"ddata_redact.csv", low_memory=False,encoding ="ISO-8859-1")

#before optimization: 353MB
ddata.info(memory_usage="deep")

#optimize file: Object-types are the biggest culprit.
ddata_obj = ddata.select_dtypes(include=['object']).copy()

#Now convert this to category type:
#Float type didn't help much, so I am excluding it here.
for col in ddata_obj:
    del …
Run Code Online (Sandbox Code Playgroud)

python r dataframe pandas data.table

8
推荐指数
1
解决办法
183
查看次数

标签 统计

pandas ×2

python ×2

data.table ×1

dataframe ×1

r ×1