猿问

如何计算和跟踪巨大的 json 文件中的值

我有一个巨大的 json 文件,它有一个键调用类型(犯罪类型)、日期和时间(犯罪日期)和位置(地址或纬度和经度)以及其他带有值的键。我最感兴趣的是计算犯罪率最高的天数,计算出现最多的呼叫类型,以及出现最多的位置,位置可以通过家庭住址或经纬度配对来衡量。Python 可能是最好的。具有超过 350K 数据行的 JSON 上有超过 350 种调用类型。所以每当你看到一个新的调用类型时,它应该为此创建一个新变量并跟踪它


我尝试迭代将它像列表一样抛出但有问题。当我的代码为 62 mb 时,我如何附加到我的代码,我应该链接到一个文件吗?


这是一个数据示例


[{"A": "incident_num", "B": "date_time", "C": "day", "D": "stno", "E": "stdir1", "F": "StreetName", "G": "streettype", "H": "FullAddress", "I": "call_type", "J": "disposition", "K": "beat", "L": "priority", "M": "lat", "N": "long"},

{"A": "P17060024503", "B": "6/14/2017 21:54", "C": "4", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1151", "J": "O", "K": "521", "L": "2", "M": "32.7054489", "N": "-117.1518696"},

{"A": "P17030051227", "B": "3/29/2017 22:24", "C": "4", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1016", "J": "A", "K": "521", "L": "2", "M": "32.7054489", "N": "-117.1518696"},

{"A": "P17060004814", "B": "6/3/2017 18:04", "C": "7", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1016", "J": "A", "K": "521", "L": "2", "M": "32.7054489", "N": "-117.1518696"},

{"A": "P17030029336", "B": "3/17/2017 10:57", "C": "6", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1151", "J": "OT", "K": "521", "L": "2", "M": "32.7054489", "N": "-117.1518696"},

{"A": "P17030005412", "B": "3/3/2017 23:45", "C": "6", "D": "10", "E": "", "F": "15TH", "G": "ST", "H": "10 15TH ST, San Diego, CA", "I": "911P", "J": "CAN", "K": "521", "L": "2", "M": "32.7057215", "N": "-117.1503498"},


我只想要统计数据,例如拨打的每种电话类型以及拨打的时间,或者哪个地点犯罪率最高,哪一天犯罪率最高等等。


白衣非少年
浏览 188回答 2
2回答

三国纷争

使用pandas:import pandas as pdraw_df = pd.DataFrame(data)df = raw_df.rename(columns=raw_df.iloc[0]).drop(0)df输出:    incident_num        date_time day stno stdir1 StreetName      ...      call_type disposition beat priority         lat          long1   P17060024503  6/14/2017 21:54   4   10              14TH      ...           1151           O  521        2  32.7054489  -117.15186962   P17030051227  3/29/2017 22:24   4   10              14TH      ...           1016           A  521        2  32.7054489  -117.15186963   P17060004814   6/3/2017 18:04   7   10              14TH      ...           1016           A  521        2  32.7054489  -117.15186964   P17030029336  3/17/2017 10:57   6   10              14TH      ...           1151          OT  521        2  32.7054489  -117.15186965   P17030005412   3/3/2017 23:45   6   10              15TH      ...           911P         CAN  521        2  32.7057215  -117.15034986   P17020016091   2/10/2017 8:23   6   10              15TH      ...            AU2           W  521        2  32.7057215  -117.15034987   P17040017368   4/11/2017 4:57   3   10              15TH      ...           5150         CAN  521        2  32.7057215  -117.15034988   P17030048050   3/28/2017 6:30   3   10              15TH      ...           1146           K  521           32.7057215  -117.15034989   P17060037341  6/22/2017 10:19   5   10              15TH      ...            242           K  521        1  32.7057215  -117.150349810  P17060008467   6/5/2017 19:27   2   10              15TH      ...           5150           K  521        2  32.7057215  -117.1503498您可以运行的查询示例:>>> df['call_type'].value_counts()5150    21016    21151    2242     1911P    1AU2     11146    1

喵喵时光机

迭代 json 文件并将所需字段存储在 assosiatve 数组中。您可以对其进行操作。如果数据具有固定的列和结构,您可以将其存储在 MySql 等数据库中,并且您可以通过简单的查询轻松执行所需的操作。
随时随地看视频慕课网APP

相关分类

Python
我要回答