我有一个约120 Gb的大文件,其中约有20列和数百万行,问题是我使用Polars是为了提高速度,但当我对 Dataframe 使用collect时,即使是为了显示单个列,也会花费太长时间,我不知道花费了多少时间,因为在我等待列时,jupyter笔记本的内核会死机
PATH = test.csv df = pl.scan_csv(PATH) print(df.select('First Column').collect())
我希望第一纵队能在合理的时间内赶到。
js5cn81o1#
PATH = "test.csv" df = pl.read_csv(PATH) first_column = df['First Column'] print(first_column) # or print(first_column.head())
vs3odd8k2#
很可能是因为数据集太大而无法打印整列。但是为什么要打印整列呢?因为它可能比屏幕上显示的要长得多。首先只打印前几行(df.head()):
PATH = "test.csv" # filename, as a string df = pl.scan_csv(PATH) # read the file lazily # assuming "First Column" is the name of the first column: df_head = df.select("First Column").head().collect() print(df_head)
oknwwptz3#
120 GB的csv文件听起来真糟糕...你的jupyter内核可能会死,这个文件可能太大了,即使你打开一个普通的.py文件。我建议尝试使用普通的python文件,在实际收集数据之前,先在lazyframe中过滤数据。如果您不知道要查找哪些值,请尝试合并和计数,或者获取文件的描述
1qczuiv04#
我猜您只想获取该列的几行,为此,您可以使用fetch()。下面是一个例子:
fetch()
PATH = test.csv df = pl.scan_csv(PATH) df.select('First Column').fetch(10)
此示例将显示列中的10行。下面是Polars API获取参考的链接:www.example.comhttps://pola-rs.github.io/polars/py-polars/html/reference/lazyframe/api/polars.LazyFrame.fetch.html#polars.LazyFrame.fetch
4条答案
按热度按时间js5cn81o1#
vs3odd8k2#
很可能是因为数据集太大而无法打印整列。但是为什么要打印整列呢?因为它可能比屏幕上显示的要长得多。首先只打印前几行(df.head()):
oknwwptz3#
120 GB的csv文件听起来真糟糕...
你的jupyter内核可能会死,这个文件可能太大了,即使你打开一个普通的.py文件。
我建议尝试使用普通的python文件,在实际收集数据之前,先在lazyframe中过滤数据。
如果您不知道要查找哪些值,请尝试合并和计数,或者获取文件的描述
1qczuiv04#
我猜您只想获取该列的几行,为此,您可以使用
fetch()
。下面是一个例子:
此示例将显示列中的10行。
下面是Polars API获取参考的链接:www.example.comhttps://pola-rs.github.io/polars/py-polars/html/reference/lazyframe/api/polars.LazyFrame.fetch.html#polars.LazyFrame.fetch