我有一个熊猫数据框架df
,我把它变成了Dask数据框架dask_df
:
import pandas as pd
import dask.dataframe as dd
df = pd.DataFrame.from_dict({'col1':[1,2,3], 'col2':[2,3,4]})
dask_df = dd.from_pandas(df, npartitions=1)
将dask_df
的索引转回大熊猫数据框后检查dask_df.compute().index # RangeIndex(start=0, stop=3, step=1)
的索引,请参阅:
dask_df.to_parquet('dask_df.pq', write_index=True)
test_df = dd.read_parquet('dask_df.pq')
test_df.compute().index #Int64Index([0, 1, 2], dtype='int64', name='index')
但是,如果我将dask数据帧写入镶木地板,然后从parquet读回dask数据帧,则索引不再一致:
override func viewDidLoad() {
super.viewDidLoad()
regionsPicker.snp.makeConstraints { (make) in
make.centerX.equalToSuperview()
make.height.equalToSuperview() // since we rotate (this is the width)
make.top.equalTo(regionsLabel.snp.bottom).offset(15)
make.width.equalTo(100)
}
rotationAngle = -90 * (.pi/180)
regionsPicker.transform = CGAffineTransform(rotationAngle: rotationAngle)
}
我希望能够将我的dask数据帧(仅一个分区)写入镶木地板,从镶木地板中读取它,并获得具有相同索引的原始dask数据帧。对我在这里做错的事情有什么想法吗?
谢谢!
答案 0 :(得分:0)
您提供的内容和获得的内容之间似乎有两个区别:
None
更改为"index"
在两种情况下,这都是因为Parquet不提供这些选项。所有列都必须使用Parquet文件格式以文本名称命名,并且它们没有键入列的概念。