Python Dask:从拼花地板写入/读取后不一致的索引

Python Dask:从拼花地板写入/读取后不一致的索引,python,pandas,dataframe,dask,Python,Pandas,Dataframe,Dask,我有一个熊猫数据帧,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) 在将其转换回pandas数据帧后,我检查了dask_df的索引,并查看: dask_df.compute().in

我有一个熊猫数据帧,
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)
在将其转换回pandas数据帧后,我检查了dask_df的索引,并查看:

dask_df.compute().index#RangeIndex(开始=0,停止=3,步骤=1)

但是,如果我将dask数据帧写入拼花地板,然后从拼花地板将其读回dask数据帧,则索引不再一致:

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,从parquet读取它,并获得具有相同索引的原始dask数据帧。对我在这里做的不对有什么想法吗


谢谢

看起来你提供的东西和你得到的东西有两个区别:

  • 名称已从
    None
    更改为
    “index”
  • 类型已从值为[0,1,2]的RangeIndex更改为值为[0,1,2]的Int64Index类型

  • 在这两种情况下,这是因为拼花地板不提供这些选项。所有列都必须使用拼花文件格式的文本名称命名,并且它们没有键入列的概念。

    您提供的内容和您得到的内容之间似乎有两个区别:

  • 名称已从
    None
    更改为
    “index”
  • 类型已从值为[0,1,2]的RangeIndex更改为值为[0,1,2]的Int64Index类型
  • 在这两种情况下,这是因为拼花地板不提供这些选项。所有列都必须使用拼花文件格式的文本名称命名,并且它们没有类型化列的概念