python - 使用 Dask 读取文件列表
问题描述
我发现 Dask 可以通过csv
这种方式读取多个文件:
import dask.dataframe as dd
df = dd.read_csv('myfiles.*.csv') # doctest: +SKIP
但是,如果我想加载其中的一部分而不是全部怎么办:
my_files = ['file1.csv', 'file3.csv','file7.csv']
df = dd.read_csv(my_files)
但这不起作用:
ValueError:长度不匹配:预期轴有 2 个元素,新值有 3 个元素
解决方案
我的错误是我的一些csv
文件有不同的列数。将文件列表读取到一个数据框的工作方式如下:
得到dask.dataframe
:
df = dd.read_csv(["small1.csv", "small2.csv"])
print(df.shape)
print(type(df))
输出:
(Delayed('int-863f32f2-a8c3-4ac9-b31f-0186541c347c'), 3)
<class 'dask.dataframe.core.DataFrame'>
得到pandas.dataframe
:
df = dd.read_csv(["small1.csv", "small2.csv"])
df = df.compute()
print(df.shape)
print(type(df))
输出:
(11000, 3)
<class 'pandas.core.frame.DataFrame'>
推荐阅读
- php - 将照片上传到服务器时,将文件上传到服务器未定义索引时出错
- javascript - Joomla!正在强制我的 concat 加 '+' 到 "%20"
- android - Android 库不适用于 Lib GDX 制作的项目
- flask - SQLAlchemy 不允许我在测试夹具中多次设置 Flask 应用程序
- macos - macOS en5 网络无法关闭
- reactjs - Apollo 客户端和更新表单
- php - Etsy PHP Oauth:无法获取访问令牌
- java - 在春季数据中使用什么代替 fetch.EAGER?
- html - 在 Bootstrap 中向面板标题添加特色角
- android - 获取单个firebase回收器视图项android的字符串