编程语言
首页 > 编程语言> > python-将值添加到使用csv_read导入的DASK数据帧的列中

python-将值添加到使用csv_read导入的DASK数据帧的列中

作者:互联网

假设使用csv_read将五个文件导入DASK.为此,我使用以下代码:

import dask.dataframe as dd
data = dd.read_csv(final_file_list_msg, header = None)

每个文件有十列.我想将1添加到文件1的第一列中,将2添加到文件2的第一列中,将3添加到文件3的第一列中,依此类推.

解决方法:

假设您遵循此方案有几个文件:

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)表示]))

标签:dask,python,dataframe,csv
来源: https://codeday.me/bug/20191009/1879074.html