我有一个基础CSV。它在来源中:311-Service 该库大约有11 GB。它是1900万行和41列。
我只想获取有关城市的信息:NEW JERSEY表格列City。 我只能将此查询用于500,000行。可行!
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文件所有行中的信息,而不仅仅是50万行。 我想我需要使用一个循环,chunksize = 500,000,但我不知道如何。
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方法。
答案 0 :(得分:1)
为什么不只在解析时使用所需的列:
my_filtered_csv = pd.read_csv(filename, usecols=['City'])
答案 1 :(得分:1)
如何尝试API调用:-
data.cityofnewyork.us/resource/fhrw-4uyv.json?city=NEW%20JERSEY
这只会为指定城市加载json,然后将此json转换为您的dataFrame
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))
P.S。:-他们也有一些有关python pandas的文档:-
https://dev.socrata.com/foundry/data.cityofnewyork.us/fhrw-4uyv
P.P.S。:-我没有注册该服务,因此据我所知,它仅显示50条记录。