Python 如何通过循环读取巨大的CSV文件
我有一个基本的CSV。其来源如下: 这个基地大约有11GB。它有1900万行和41列 我只想获取有关城市的信息:新泽西州表格列城市。 我只能对500000行使用此查询。它起作用了Python 如何通过循环读取巨大的CSV文件,python,pandas,csv,Python,Pandas,Csv,我有一个基本的CSV。其来源如下: 这个基地大约有11GB。它有1900万行和41列 我只想获取有关城市的信息:新泽西州表格列城市。 我只能对500000行使用此查询。它起作用了 NYPD = pd.read_csv('c:/1/311_Service_Requests_from_2010_to_Present.csv', nrows=500000, low_memory=False) M = NYPD.loc[NYPD.City=='NEW JERSEY', :] M.to_csv('c:/1
NYPD = pd.read_csv('c:/1/311_Service_Requests_from_2010_to_Present.csv', nrows=500000, low_memory=False)
M = NYPD.loc[NYPD.City=='NEW JERSEY', :]
M.to_csv('c:/1/NJ_NYPD.csv')
我需要CSV文件所有行的信息,而不仅仅是500000行的信息。
我想我需要使用一个循环,chunksize=500000,但我不知道如何使用
hunksize =500000
i = 0
j = 1
for df in pd.read_csv('c:/1/311_Service_Requests_from_2010_to_Present.csv', chunksize=chunksize, iterator=True, low_memory=False):
df.loc[df.City=='NEW JERSEY', :]
df.index += j
i+=1
df.to_csv('c:/1/NJ_NYPD.csv')
我不想将CSV转换为dbase方法。为什么不在解析时使用所需的列:
my_filtered_csv = pd.read_csv(filename, usecols=['City'])
试试API调用怎么样:-
data.cityofnewyork.us/resource/fhrw-4uyv.json?city=NEW%20JERSEY
这将仅为指定城市加载json,然后将此json转换为数据帧
import requests
import json
from pandas.io.json import json_normalize
data = requests.get('https://data.cityofnewyork.us/resource/fhrw-4uyv.json?city=NEW%20JERSEY')
json_normalize(json.loads(data.text))
附言:-他们也有一些关于python的文档:-
https://dev.socrata.com/foundry/data.cityofnewyork.us/fhrw-4uyv
p.p.S.:-我没有注册这项服务,所以就我所知,它只显示了50条记录。使用
skiprows
arguments看起来很有希望-我今晚会练习,如果有效,我会给出答案。谢谢@Wojciechmoszczzkski您很好,随时通知我们:)