2024-05-16 03:16:40 发布
网友
我是生物学家,对Python非常陌生,在此之前,我学了一点R
所以我有一个非常大的文本文件(3gb,太大了,无法在R中处理),所有的值都用逗号分隔,但是扩展名是.txt(我不知道它是否是必要的信息)。我想做的是:
把它作为一个对象读入python,它相当于R中的dataframe, 去掉中间的柱子 缩小对象的大小 以txt文件形式写入
把剩下的带到R
如果你能帮我,我会很高兴的。 谢谢你
我不熟悉r dataframe,但是pandas提供{a1}将csv读入pandas dataframe:
pandas
from pandas import read_csv df = read_csv('yourfile.txt') print df print df['Line']
如果这不是您需要的,您可以使用^{}模块以python列表的形式遍历csv的每一行,并将其放入您想要的任何数据结构中。在
没有必要先研究python。你的问题看起来很像this question。标记为正确答案的答案迭代地读取大文件,并创建一个新的更小的文件。其他好的选择是使用sqlite和sqdf包,或者使用ff包。最后一种方法尤其有效,因为列的数量比行的数量少。在
sqlite
sqdf
ff
这将占用最少的内存,因为它不会一次加载整个文件。在
import csv with open('in.txt', 'rb') f_in, open('out.csv', 'wb') as f_out: reader = csv.reader(f_in) writer = csv.writer(f_out) for row in reader: # keep first two columns and last three columns writer.writerow(row[:2] + row[-3:])
注意:如果使用python3,请将文件模式分别更改为'r'和{}。在
'r'
我不熟悉r dataframe,但是
pandas
提供{a1}将csv读入pandas dataframe:如果这不是您需要的,您可以使用^{} 模块以python列表的形式遍历csv的每一行,并将其放入您想要的任何数据结构中。在
没有必要先研究python。你的问题看起来很像this question。标记为正确答案的答案迭代地读取大文件,并创建一个新的更小的文件。其他好的选择是使用
sqlite
和sqdf
包,或者使用ff
包。最后一种方法尤其有效,因为列的数量比行的数量少。在这将占用最少的内存,因为它不会一次加载整个文件。在
注意:如果使用python3,请将文件模式分别更改为}。在
'r'
和{相关问题 更多 >
编程相关推荐