我正在尝试使用pandas数据框创建镶木地板,即使我删除了文件的索引,在我重新读取镶木地板文件时它仍会出现。谁能帮我这个?我希望将index.name设置为无。
>>> 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
答案 0 :(得分:1)
使用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
答案 1 :(得分:0)
我一直在使用pyarrow和fastparquet两个库,试图在不保留索引的情况下编写镶木地板文件,因为我需要将这些数据作为外部表从redshift读取。
对我来说,它对图书馆 fastparquet
起作用df.to_parquet(destination_file, engine='fastparquet', compression='gzip', write_index=False)
如果您尝试遵循to_parquet official documentation,则会看到它提到参数“ index ”,但是如果所用引擎中不存在此参数,则会抛出错误。目前,我发现只有fastparquet才有这样的选项,并且名为“ write_index ”
答案 2 :(得分:0)
嘿,这可以和 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 documentation中提到的@ alexopoulos7指出,您可以使用“ index ”参数作为参数。它似乎可行,也许是因为我明确指出了engine='pyarrow'