我正在使用yelp数据集,当然它有数百万条长,所以我想知道是否有任何方法可以下载您需要的内容,或者您是否必须手动接收它?例如,yelp对从汽车修理到美容院的所有内容都有评论,但我只想要对餐馆进行评论。那么我是否必须阅读整个内容然后删除我不需要的行?
答案 0 :(得分:1)
假设您正在查看.csv
文件,您可以阅读并预处理chunks
,而不是阅读完整数据集,如下所示:
df = pd.DataFrame()
chunksize = 100000
for chunk in pd.read_csv(filename, chunksize=chunksize):
process(chunk)
df = pd.concat([df, chunk])
如果您能够控制原始数据集中的内容,那么您当然会感觉更好。
答案 1 :(得分:0)
通常是,加载所有内容,然后过滤数据集。
但是如果你真的想要预过滤,并且你在类似unix的系统上,你可以在启动Python之前使用grep
进行预过滤。
它们之间的妥协是使用Python和Pandas编写预过滤器,这样就可以下载数据,预过滤它们(将预过滤的数据写入另一个csv)并使用预过滤的数据。
前进的方式取决于您需要加载整个数据集的次数,如果您想要读取一次并丢弃它,则无需预过滤,但在处理代码时,如果要测试它很多时候,预过滤可能会节省你几秒钟。但在这里,还有另一种可能性:使用ipython notebook,这样你就可以加载数据集,过滤它,然后在这个已经加载的数据集上执行你当前正在工作的代码块,它甚至比加载预过滤的数据集更快。
所以这里没有真正的答案,这实际上取决于你的用法和个人品味。