我有一个非常大的csv文件,所以我无法将它们全部读入内存.我只想阅读并处理其中的几行.所以我在Pandas中寻找一个可以处理这个任务的函数,基本的python可以很好地处理这个:
with open('abc.csv') as f:
line = f.readline()
# pass until it reaches a particular line number....
Run Code Online (Sandbox Code Playgroud)
但是,如果我在熊猫中这样做,我总是阅读第一行:
datainput1 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )
datainput2 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )
Run Code Online (Sandbox Code Playgroud)
我正在寻找一些更简单的方法来处理熊猫中的这个任务.例如,如果我想读取1000到2000的行.我该如何快速完成?
我想使用pandas,因为我想将数据读入数据帧.
EdC*_*ica 51
用途chunksize
:
for df in pd.read_csv('matrix.txt',sep=',', header = None, chunksize=1):
#do something
Run Code Online (Sandbox Code Playgroud)
回答你的第二部分做到这一点:
df = pd.read_csv('matrix.txt',sep=',', header = None, skiprows=1000, chunksize=1000)
Run Code Online (Sandbox Code Playgroud)
这将跳过前1000行,然后只读取接下来的1000行,给你1000-2000行,不清楚你是否需要包括终点,但你可以调整数字来得到你想要的.
除了EdChums之外,如果发现该nrows
参数有用,它只是定义了您想要导入的行数.因此,您不会获得迭代器,而只能导入整个文件大小的一部分nrows
.它也适用skiprows
.
df = pd.read_csv('matrix.txt',sep=',', header = None, skiprows= 1000, nrows=1000)
Run Code Online (Sandbox Code Playgroud)