我有"透视"格式的大CSV文件:行和列是分类的,而值是同类数据类型。
将这样一个文件加载到一个具有"非透视"模式的pyarrow.Table
中的最佳方法是什么(内存和计算效率)?换句话说,给定一个具有n
行和m
列的CSV文件,如何得到一个具有n*m
行和一列的pyarrow.Table
?
就pandas
而言,我想我想要pyarrow
相当于pandas.DataFrame.melt()
或.stack()
。
比如说...
- 给定此CSV文件
item,A,B
item_0,0,0
item_1,370,1
item_2,43,0
- 我要这个
pyarrow.Table
item group value
item_0 A 0
item_0 B 0
item_1 A 370
item_1 B 1
item_2 A 43
item_2 B 0
1条答案
按热度按时间iqjalb3h1#
Pyarrow的计算能力有限,目前还不支持melt。你可以看到它提供了什么:https://arrow.apache.org/docs/python/api/compute.html#
另一种方法是自己创建融化的表:
另一个选择是使用pola-rs,它类似于panda,但使用arrow作为后端,与pyarrow不同,它有更多的计算功能,包括melt:https://pola-rs.github.io/polars/py-polars/html/reference/dataframe/api/polars.DataFrame.melt.html