gpt4 book ai didi

python-2.7 - Python Dask-2个DataFrame的垂直串联

转载 作者:行者123 更新时间:2023-12-04 12:28:24 28 4
gpt4 key购买 nike

我正在尝试垂直连接两个Dask DataFrame

我有以下Dask DataFrame:

d = [
['A','B','C','D','E','F'],
[1, 4, 8, 1, 3, 5],
[6, 6, 2, 2, 0, 0],
[9, 4, 5, 0, 6, 35],
[0, 1, 7, 10, 9, 4],
[0, 7, 2, 6, 1, 2]
]
df = pd.DataFrame(d[1:], columns=d[0])
ddf = dd.from_pandas(df, npartitions=5)

这是作为Pandas DataFrame的数据
          A         B      C      D      E      F
0 1 4 8 1 3 5
1 6 6 2 2 0 0
2 9 4 5 0 6 35
3 0 1 7 10 9 4
4 0 7 2 6 1 2

这是Dask DataFrame
Dask DataFrame Structure:
A B C D E F
npartitions=4
0 int64 int64 int64 int64 int64 int64
1 ... ... ... ... ... ...
2 ... ... ... ... ... ...
3 ... ... ... ... ... ...
4 ... ... ... ... ... ...
Dask Name: from_pandas, 4 tasks

我正在尝试垂直连接2个Dask DataFrames:
ddf_i = ddf + 11.5
dd.concat([ddf,ddf_i],axis=0)

但是我得到这个错误:
Traceback (most recent call last):
...
File "...", line 572, in concat
raise ValueError('All inputs have known divisions which cannot '
ValueError: All inputs have known divisions which cannot be concatenated
in order. Specify interleave_partitions=True to ignore order

但是,如果我尝试:
dd.concat([ddf,ddf_i],axis=0,interleave_partitions=True)

那么它似乎正在工作。将此设置为 True是否存在问题(就性能而言-速度)?或者还有另一种方法来垂直连接2个Dask DataFrames?

最佳答案

如果检查数据帧ddf.divisions的划分,则在假设一个分区的情况下,您会发现该分区具有索引的边缘:(0,4)。这样做很有用,因为它知道您何时对数据进行某些操作,而不要使用不包含所需索引值的分区。这也是为什么当索引适合该作业时某些快速操作会更快的原因。

串联时,第二个数据帧与第一个数据帧具有相同的索引。如果索引的值在两个分区中具有不同的范围,则串联将不会交错进行。

关于python-2.7 - Python Dask-2个DataFrame的垂直串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810905/

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