python - InvalidIndexError 错误映射 dask 系列
问题描述
此映射在调用head
前 100 行时有效:
ddf['val'] = ddf['myid'].map( val['val'] , meta=pd.Series(float) )
但是当我尝试保存到镶木地板时:
ddf.to_parquet('myfile.parquet',
compression='snappy',
write_index=False,
compute_kwargs={'scheduler':'threads'}
)
我收到一个错误:InvalidIndexError: Reindexing only valid with uniquely valued Index objects
。
但是检查我的索引(转换为熊猫系列后),它是独一无二的:val.index.duplicated().any()
是False
. 此外,索引与其映射到的数据框列的设置相同:myid
. 索引中没有 null、nan 或 None。索引是 int64。
更新:奇怪的是,如果我一次为原始 ddf 加载每个镶木地板文件,这不会出错。如果我一次加载多个,则会出错。
解决方案
这可能是fastparquet
引擎中的错误。我保存了基础数据框pyarrow
并使用to_parquet
了engine='pyarrow'
,现在一切正常:
ddf.to_parquet('myfile.parquet',
engine='pyarrow',
compression='snappy',
write_index=False,
compute_kwargs={'scheduler':'threads'}
)
推荐阅读
- spring - In-Memory 和 MySQL DB 的不同持久性行为
- c# - 当我的 Access DB 被超过 1 个用户使用时,ExecuteNonQuery() 非常慢
- java - 执行迁移的配置不正确
- php - WooCommerce $product->get_stock_quantity(); 打破购物车页面
- python - 如何从 group by 中获取第一列?蟒蛇熊猫
- batch-file - 如何检查批处理文件中是否存在目录?
- python - 列表内容的长度,里面有列表
- android - 通过 Gmail 添加帐户 Android 登录时出错
- javascript - Angularjs Material $mdDialog 控制器在特定计算机上不起作用
- angular - 如何按名称对列表进行排序?