相关疑难解决方法(0)

你能将CR/LF编码成CSV文件吗?

以某种方式将CR/LF字符编码为CSV文件是否可能/合法?

(作为CSV标准的一部分?)

如果是这样我应该如何编码CR/LF?

csv

59
推荐指数
3
解决办法
6万
查看次数

从Python中的巨大CSV文件中读取随机行

我有这个非常大的CSV文件(15 Gb),我需要读取大约100万条随机行.据我所知 - 并实现 - Python中的CSV实用程序只允许在文件中按顺序迭代.

将所有文件读入内存以使用一些随机选择是非常耗费内存的,并且通过所有文件并丢弃一些值并选择其他文件非常耗时,因此,无论如何都要从CSV文件中选择一些随机行并且只读那行?

我尝试没有成功:

   import csv

    with open('linear_e_LAN2A_F_0_435keV.csv') as file:
        reader = csv.reader(file)
        print reader[someRandomInteger]
Run Code Online (Sandbox Code Playgroud)

CSV文件的示例:

331.093,329.735 
251.188,249.994 
374.468,373.782 
295.643,295.159 
83.9058,0 
380.709,116.221 
352.238,351.891 
183.809,182.615 
257.277,201.302
61.4598,40.7106
Run Code Online (Sandbox Code Playgroud)

python csv random file

30
推荐指数
4
解决办法
2万
查看次数

PyTables读取随机子集

是否可以从HDF5中读取行的随机子集(通过pyTables,或者最好是pandas)?我有一个非常大的数据集,有数百万行,但只需要几千个样本进行分析.从压缩的HDF文件中读取怎么样?

python hdf5 pytables pandas

7
推荐指数
1
解决办法
1698
查看次数

来自python中非常长的迭代的随机样本

我有一个很长的python生成器,我想通过随机选择一个值的子集来"稀释".不幸的是,random.sample()不能使用任意迭代.显然,它需要支持len()操作的东西(可能是对序列的非顺序访问,但这一点并不清楚).而且我不想建立一个庞大的列表,所以我可以把它简化.

事实上,有可能在一次通过中均匀地从序列中采样,而不知道它的长度 - 这就是一个很好的算法Programming perl(编辑:"水库采样",谢谢@ user2357112!).但有没有人知道提供此功能的标准python模块?

演示问题(Python 3)

>>> import itertools, random
>>> random.sample(iter("abcd"), 2)
...
TypeError: Population must be a sequence or set.  For dicts, use list(d).
Run Code Online (Sandbox Code Playgroud)

在Python 2上,错误更透明:

Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    random.sample(iter("abcd"), 2)
  File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py", line 321, in sample
    n = len(population)
TypeError: object of type 'iterator' has no len()
Run Code Online (Sandbox Code Playgroud)

如果没有别的选择random.sample(),我会试着把发电机包装成一个提供__len__方法的对象(我可以事先找出它的长度).所以我会接受一个答案,说明如何干净利落地做到这一点.

python random python-3.x

4
推荐指数
1
解决办法
1831
查看次数

标签 统计

python ×3

csv ×2

random ×2

file ×1

hdf5 ×1

pandas ×1

pytables ×1

python-3.x ×1