我有一个网址列表,我很乐意将它们读到dask数据框
立刻,但看起来read_csv
不能使用http
的星号。有没有办法实现这个目标?
以下是一个例子:
link = 'http://web.mta.info/developers/'
data = [ 'data/nyct/turnstile/turnstile_170128.txt',
'data/nyct/turnstile/turnstile_170121.txt',
'data/nyct/turnstile/turnstile_170114.txt',
'data/nyct/turnstile/turnstile_170107.txt'
]
我想要的是
df = dd.read_csv('XXXX*X')
答案 0 :(得分:7)
尝试使用dask.delayed将每个网址转换为懒惰的pandas数据框,然后使用dask.dataframe.from_delayed将这些延迟值转换为完整的dask数据框
import pandas as pd
import dask
import dask.dataframe as dd
dfs = [dask.delayed(pd.read_csv)(url) for url in urls]
df = dd.from_delayed(dfs)
这将立即读取一个您的链接,以便找出元数据(列,dtypes)。如果您提前知道这些dtypes和链接,那么您可以通过将示例空数据帧传递给dd.from_delayed(..., meta=sample_df)
另请参阅:http://dask.pydata.org/en/latest/delayed-collections.html