【发布时间】:2019-05-23 12:41:44
【问题描述】:
我在一个大文本文件中有一个时间序列。 该文件超过 4 GB。
因为它是一个时间序列,我只想阅读 1% 的行。
所需的极简主义示例:
df = pandas.read_csv('super_size_file.log',
load_line_percentage = 1)
print(df)
想要的输出:
>line_number, value
0, 654564
100, 54654654
200, 54
300, 46546
...
加载后我无法重新采样,因为一开始加载它需要太多内存。
我可能想逐块加载并重新采样每个块。但对我来说似乎效率低下。
欢迎任何想法。 ;)
【问题讨论】:
-
read_csv有一个nrowsarg 和chunksize,你有没有尝试过这些:pandas.pydata.org/pandas-docs/stable/reference/api/… -
你可以运行linux head命令,阅读
head super_size_file.log > small_sample.log或head -n 1000 super_size_file.log > small_sample.log -
@EdChum:nrows 加载 n 第一行。我想全部加载,但 100 行中只有 1 行... chunkzise 很棒,但加载每个块需要时间。 (99% 我不想要)。但这绝对是我的 B 计划。 @ sh.jeon:linux 中的'head' 似乎与nrows 相同。 (有趣的顺便说一句,但从我的角度来看同样的评论)
标签: python pandas time-series bigdata