有没有快速的方法来获取数据集中的行数?
我能想出的最好的想法是使用$ limit和$ offset进行二进制探测,或者在内部已知大小的情况下,在$ limit/$ offset窗口内进行二进制探测和单个列的最终提取的混合探测,比方说,100左右.
(我检查了HTTP标头......没有快乐.)
我在测试数据库中将这个查询放在 MySQL 中,并试图弄清楚如何将它移植到 SoQL SODA API。几乎只是想获得一份独特业务和相关详细信息的列表。
SELECT DISTINCT
(CAMIS), dba, boro, building, street
FROM
nyc_stuff.restauraunt_inspections
WHERE
BORO = 'BRONX';
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的基本网址:
https://data.cityofnewyork.us/resource/xx67-kt59.json
我知道如何使用clauses,但无法弄清楚如何将 Distinct 添加到查询中。
我厌倦了这个:
https://data.cityofnewyork.us/resource/xx67-kt59.json ?$select=DISTINCT%20(CAMIS)
但没有运气...
Socrata确认没有正式的Python API.我想知道是否有一些原因可以使得学习其中一种具有官方API支持的语言是值得的,即Python(以及像Pandas这样的相关软件包)不是数据争用的最佳选择.
我想做的具体事情包括查看像data.lacity.gov这样的网站.无论我在浏览器上看到什么数据库,都不要让我设置日期或其他参数.我得到几个月的结果,我预计数年或数十年.这导致了寻找API以及缺乏Python支持,除了新兴的已弃用项目分支.当然,我假设API允许更高的可见性...
俱乐部里的老家伙
我正在尝试将消费者金融保护局 (CFPB) 加载到 Python 3.4 中的 Pandas 数据帧中。我的代码有效,但是通过 SODA API 似乎我仅限于 1,000 行。我正在使用应用程序令牌并在此处引用 URL
df = pd.read_json('http://data.consumerfinance.gov/resource/x94z-ydhh.json?$$app_token=XXXXXXXXXXXXXXXX')
Run Code Online (Sandbox Code Playgroud)
数据结构是完美的,但是我仅限于 1,000 行数据(应该接近 300,000 行数据)。
当我通过浏览器(使用应用程序令牌)访问相同的 URL 时,它似乎也只提取了 1,000 行。我的印象是使用 App Token 就可以访问整个数据集,这是错误的吗?
更新:我正在使用“ Socrata开源API”中的一些示例代码。我在代码中注意到以下注释:
# First 2000 results, returned as JSON from API / converted to Python
# list of dictionaries by sodapy.
Run Code Online (Sandbox Code Playgroud)
我不熟悉JSON。
我已经下载了一个数据集,并创建了一个包含大量列的DataFrame'df'。
df = pd.DataFrame.from_records(results)
Run Code Online (Sandbox Code Playgroud)
当我尝试使用describe()方法时,出现“ TypeError:无法散列的类型:'dict'”:
df.describe()
...
TypeError: unhashable type: 'dict'
Run Code Online (Sandbox Code Playgroud)
如何识别产生此错误的列?
更新2:根据Yuca的要求,我提供了df的摘录: