我正在尝试从 http://grouplens.org/datasets/movielens/20m/ 中读取一个名为 ratings.csv 的 .csv 文件该文件在我的计算机中为 533.4MB。
这是我在 jupyter notebook 上写的内容
import pandas as pd
ratings = pd.read_cv('./movielens/ratings.csv', sep=',')
这里的问题是内核会崩溃或死机并要求我重新启动并且它不断重复相同的事情。没有任何错误。请您提出解决此问题的任何替代方法,就好像我的计算机无法运行它一样。
这行得通,但它一直在重写
chunksize = 20000
for ratings in pd.read_csv('./movielens/ratings.csv', chunksize=chunksize):
ratings.append(ratings)
ratings.head()
只有最后一个 block 被写入,其他被注销
最佳答案
您应该考虑在 read_csv
中使用 chunksize
参数在读取数据帧时,因为它返回一个 TextFileReader
对象,您可以随后将其传递给 pd.concat
以连接您的 block 。
chunksize = 100000
tfr = pd.read_csv('./movielens/ratings.csv', chunksize=chunksize, iterator=True)
df = pd.concat(tfr, ignore_index=True)
如果您只想单独处理每个 block ,请使用,
chunksize = 20000
for chunk in pd.read_csv('./movielens/ratings.csv',
chunksize=chunksize,
iterator=True):
do_something_with_chunk(chunk)
关于python - 使用 pandas 高效读取大型 CSV 文件而不会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45870220/