我正在尝试从http://grouplens.org/datasets/movielens/20m/读取名为ratings.csv的.csv文件,该文件在我的计算机中为533.4MB。
这就是我在jupyter笔记本上写的内容
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()
只有最后一个块写入其他块被注销
答案 0 :(得分:6)
在阅读数据框时,您应该考虑在read_csv
中使用chunksize
参数,因为它会返回一个TextFileReader
对象,然后您可以将其传递给pd.concat
以连接您的数据块。
chunksize = 100000
TextFileReader = pd.read_csv('./movielens/ratings.csv', sep=',', chunksize=chunksize, iterator=True)
df = pd.concat(TextFileReader, ignore_index=True)
适应编辑:
chunksize = 20000
out = None
for ratings in pd.read_csv('./movielens/ratings.csv', chunksize=chunksize):
if out is None:
out = ratings.copy()
else:
out.append(ratings)
out.head()
答案 1 :(得分:0)
尝试这样 - 1)用dask加载然后2)转换为pandas
import pandas as pd
import dask.dataframe as dd
import time
t=time.clock()
df_train = dd.read_csv('../data/train.csv')
df_train=df_train.compute()
print("load train: " , time.clock()-t)