熊猫:从镶木地板文件中读取前 n 行?

新手上路,请多包涵

我有一个镶木地板文件,我想先读取文件中的 n 行到熊猫数据框中。我尝试了什么:

 df = pd.read_parquet(path= 'filepath', nrows = 10)

它没有用,给了我错误:

 TypeError: read_table() got an unexpected keyword argument 'nrows'

我确实也尝试了 skiprows 参数,但这也给了我同样的错误。

或者,我可以读取完整的镶木地板文件并过滤前 n 行,但这将需要更多我想避免的计算。

有什么办法可以实现吗?

原文由 Sanchit Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 649
2 个回答

接受的答案已过时。现在可以只将 parquet 文件的前几行读入 pandas,尽管它有点混乱并且依赖于后端。

要使用 PyArrow 作为后端阅读,请按照以下步骤操作:

 from pyarrow.parquet import ParquetFile
import pyarrow as pa

pf = ParquetFile('file_name.pq')
first_ten_rows = next(pf.iter_batches(batch_size = 10))
df = pa.Table.from_batches([first_ten_rows]).to_pandas()

更改行 batch_size = 10 以匹配您要读入的行数。

原文由 David Kaftan 发布,翻译遵循 CC BY-SA 4.0 许可协议

在四处探索并与熊猫开发团队取得联系后,终点是熊猫在读取镶木地板文件时不支持参数 nrowsskiprows

原因是熊猫使用 pyarrowfastparquet 镶木地板引擎来处理镶木地板文件和 pyarrow 不支持通过读取文件部分跳过行或读取文件确定 fastparquet )。下面是 pandas github 上的问题链接,供讨论。

https://github.com/pandas-dev/pandas/issues/24511

原文由 Sanchit Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题