假设您遵循此方案有几个文件:
dummy/
├── file01.csv
├── file02.csv
├── file03.csv
首先,我们通过创建它们
import os
import pandas as pd
import numpy as np
import dask.dataframe as dd
from dask import delayed
fldr = "dummy"
if not os.path.exists(fldr):
os.mkdir(fldr)
for i in range(10):
df = pd.DataFrame(np.random.rand(5,3))
df.to_csv("{}/file{:02}.csv".format(fldr,i+1),
index=False)
创建的文件列表为fns = sorted(os.listdir(fldr))
然后我们编写一个给定路径fn的函数:
>读取文件
>在fileXX.csv中取数字XX
>在第一列中插入int(XX)
那是
def addCol(fn):
df = pd.read_csv(os.path.join(fldr, fn))
first = int(fn.split(".")[0][-2:])
df.insert(0, "first", first)
return df
我们希望这个乐趣能够被延迟,我们可以使用装饰器@delayed或将函数包装为延迟来实现.因此,为了获得所需的输出,我们应该触发(相应地)
> ddf = dd.from_delayed([在fns中为fn添加[addCol(fn)]))
> ddf = dd.from_delayed([对于fn in fns,为[delayed(addCol)(fn)表示]))