5
我有一個大的CSV文件,我用pd.read_csv打開它,因爲它遵循:打開選定的行
df = pd.read_csv(path//fileName.csv, sep = ' ', header = None)
由於該文件是真正的大我希望能在行
from 0 to 511
from 512 to 1023
from 1024 to 1535
...
from 512*n to 512*(n+1) - 1
其中n = 1,2,3,打開它...
如果我添加CHUNKSIZE = 512到read_csv的論點
df = pd.read_csv(path//fileName.csv, sep = ' ', header = None, chunksize = 512)
和I型
df.get_chunk(5)
比我能夠從0開行到5或I可以使用能夠將文件分割中的512行部分for循環
data = []
for chunks in df:
data = data + [chunk]
但是這樣做還是無用的,因爲文件必須完全打開並且需要時間。我如何只讀取512 * n到512 *(n + 1)的行。
環顧四周,我經常看到「CHUNKSIZE」與「迭代」一起使用,因爲它遵循
df = pd.read_csv(path//fileName.csv, sep = ' ', header = None, iterator = True, chunksize = 512)
但多次嘗試後,我還是不明白其中的好處提供給我這個布爾變量。你能解釋一下嗎?
我不需要合併任何東西,我只需要打開從... 512 * 10到512 * 11 -1的行,而無需打開其他任何東西,是否有可能? –
我在IPython上覆制並過去了你的代碼,我嘗試了一次「iterator = True」,而另一次「iterator = False」,它們之間沒有區別。在這種情況下,「迭代器」可能有用嗎? –
@StefanoFedele,我用一個例子更新了我的答案,它應該澄清'chunksize'和'iterator'之間的區別...... – MaxU