dask.dataframe.Index.repartition
dask.dataframe.Index.repartition¶
- Index.repartition(divisions=None, npartitions=None, partition_size=None, freq=None, force=False)¶
沿新分区重新分区数据框
- 参数
- 部门列表,可选
用于将数据框分割成多个分区的“分界线”。对于
divisions=[0, 10, 50, 100]
,将会有三个输出分区,其中新的索引分别包含 [0, 10)、[10, 50) 和 [50, 100)。参见 http://www.aidoczh.com/dask/dataframe-design.html#partitions。仅在未指定 npartitions 和 partition_size 时使用。如果给定一个整数,这将委托给 npartitions,如果给定一个字符串,则将委托给 partition_size(见下文)。- npartitionsint, 可选
输出分区的大致数量。仅在未指定 partition_size 时使用。使用的分区数量可能略低于 npartitions,但绝不会更高。
- partition_size: int 或 string, 可选
每个分区的最大内存字节数。可以使用数字或类似5MB的字符串。如果指定,npartitions和divisions将被忽略。请注意,该大小反映了由``pandas.DataFrame.memory_usage``计算的字节数,这不一定与存储到磁盘时的大小匹配。
警告
此关键字参数触发计算以确定每个分区的内存大小,这可能很耗费资源。
- 频率str, pd.Timedelta
用于分区时间序列数据的周期,如
'7D'
或'12h'
或pd.Timedelta(hours=12)
。假设使用 datetime 索引。- 强制bool, 默认 False
允许扩展现有的分区。如果为 False,则新分区的上下界必须与旧分区相同。
注释
必须指定 divisions、npartitions、partition_size 或 freq 中的一个。如果不是这种情况,将引发
ValueError
。另请注意,
len(divisions)
等于npartitions + 1
。这是因为divisions
表示每个分区的上下限。第一个项目是第一个分区的下限,第二个项目是第二个分区的下限和第一个分区的上限,依此类推。倒数第二个项目是最后一个分区的下限,最后一个(额外的)项目是最后一个分区的上限。示例
>>> df = df.repartition(npartitions=10) >>> df = df.repartition(divisions=[0, 5, 10, 20]) >>> df = df.repartition(freq='7d')