pandas 有没有办法用极坐标打开一个120 GB的文件

smdncfj3  于 2023-03-06  发布在  其他
关注(0)|答案(4)|浏览(105)

我有一个约120 Gb的大文件,其中约有20列和数百万行,问题是我使用Polars是为了提高速度,但当我对 Dataframe 使用collect时,即使是为了显示单个列,也会花费太长时间,我不知道花费了多少时间,因为在我等待列时,jupyter笔记本的内核会死机

PATH = test.csv
df = pl.scan_csv(PATH)
print(df.select('First Column').collect())

我希望第一纵队能在合理的时间内赶到。

js5cn81o

js5cn81o1#

PATH = "test.csv"
df = pl.read_csv(PATH)
first_column = df['First Column']
print(first_column)
# or
print(first_column.head())
vs3odd8k

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)
oknwwptz

oknwwptz3#

120 GB的csv文件听起来真糟糕...
你的jupyter内核可能会死,这个文件可能太大了,即使你打开一个普通的.py文件。
我建议尝试使用普通的python文件,在实际收集数据之前,先在lazyframe中过滤数据。
如果您不知道要查找哪些值,请尝试合并和计数,或者获取文件的描述

1qczuiv0

1qczuiv04#

我猜您只想获取该列的几行,为此,您可以使用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

相关问题