5

我正在尝试使用 pandas 数据框创建镶木地板,即使我删除了文件的索引,当我重新读取镶木地板文件时它仍然会出现。谁能帮我这个?我希望 index.name 设置为None

>>> df = pd.DataFrame({'key': 1}, index=[0])
>>> df
  key
0    1
>>> df.to_parquet('test.parquet')
>>> df = pd.read_parquet('test.parquet')
>>> df
     key
index     
0        1
>>> del df.index.name
>>> df
     key
0    1
>>> df.to_parquet('test.parquet')
>>> df = pd.read_parquet('test.parquet')
>>> df
     key
index     
0        1
4

3 回答 3

3

它使用 pyarrow 按预期工作:

>>> df = pd.DataFrame({'key': 1}, index=[0])
>>> df.to_parquet('test.parquet', engine='fastparquet')
>>> df = pd.read_parquet('test.parquet')
>>> del df.index.name
>>> df
   key
0    1
>>> df.to_parquet('test.parquet', engine='fastparquet')
>>> df = pd.read_parquet('test.parquet')
>>> df
       key
index     
0        1 ---> INDEX NAME APPEARS EVEN AFTER DELETING USING fastparquet
>>> del df.index.name
>>> df.to_parquet('test.parquet', engine='pyarrow')
>>> df = pd.read_parquet('test.parquet')
>>> df
   key
0    1 --> INDEX NAME IS NONE WHEN CONVERSION IS DONE WITH pyarrow
于 2018-08-16T10:24:07.113 回答
2

嘿,这适用于pyarrow,具有以下功能

df = pd.DataFrame({'key': 1}, index=[0])
df.to_parquet('test.parquet', engine='pyarrow', index=False)
df = pd.read_parquet('test.parquet', engine='pyarrow')
df.head()

正如to_parquet 文档中提到的@alexopoulos7 所说,您可以使用“ index ”参数作为参数。它似乎有效,也许是因为我明确说明engine='pyarrow'

于 2020-01-22T10:28:53.323 回答
1

我一直在使用pyarrowfastparquet这两个库,尝试在不保留索引的情况下编写 parquet 文件,因为我需要从 redshift 作为外部表读取这些数据。

对我来说,它适用于图书馆fastparquet

df.to_parquet(destination_file, engine='fastparquet', compression='gzip', write_index=False)

如果您尝试遵循to_parquet官方文档,您会看到它提到了参数“ index ”,但如果使用的引擎中不存在此参数,则会引发错误。目前,我发现只有 fastparquet 有这样的选项,并且命名为“ write_index

于 2019-10-23T10:09:22.570 回答