gpt4 book ai didi

python - 从 CSV 读取数据时,如何在 Dask 中添加索引列?

转载 作者:行者123 更新时间:2023-12-01 00:26:42 27 4
gpt4 key购买 nike

我正在尝试处理一个相当大的数据集,该数据集在一次加载时不适合使用 Pandas 装入内存,因此我使用 Dask。但是,在使用 read_csv 方法读取数据后,我很难向数据集添加唯一的 ID 列。我不断收到错误(请参阅代码)。我正在尝试创建一个索引列,以便可以将该新列设置为数据的索引,但错误似乎告诉我在创建列之前先设置索引。

代码

df = dd.read_csv(r'path\to\file\file.csv')  # File does not have a unique ID column, so I have to create one.
df['index_col'] = dd.from_array(np.arange(len(pc_df))) # Trying to add an index column and fill it
# ValueError: Not all divisions are known, can't align partitions. Please use `set_index` to set the index.

更新

使用 range(1, len(df) + 1 将错误更改为:TypeError:列赋值不支持类型范围

最佳答案

是的,如果不通读 CSV 文件,很难知道每个 block 的行数,因此很难生成像 0, 1, 2, 3, ... 这样的索引如果数据集跨越多个分区。

一种方法是创建一列:

df["idx"] = 1

然后调用 cumsum

df["idx"] = df["idx"].cumsum()

但请注意,这确实向支持数据帧的任务图添加了一堆依赖项,因此某些操作可能不像以前那样并行。

关于python - 从 CSV 读取数据时,如何在 Dask 中添加索引列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58525020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com