利用python进入数据分析之usagov_bitly_data数据分析

来源:互联网 发布:知乎客户端 pc 编辑:程序博客网 时间:2024/06/08 06:09

获取数据中的时区进行计数统计

In [1]:
path = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt'
In [2]:
open(path).readline()
Out[2]:
'{ "a": "Mozilla\\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\\/535.11 (KHTML, like Gecko) Chrome\\/17.0.963.78 Safari\\/535.11", "c": "US", "nk": 1, "tz": "America\\/New_York", "gr": "MA", "g": "A6qOVH", "h": "wfLQtf", "l": "orofrog", "al": "en-US,en;q=0.8", "hh": "1.usa.gov", "r": "http:\\/\\/www.facebook.com\\/l\\/7AQEFzjSi\\/1.usa.gov\\/wfLQtf", "u": "http:\\/\\/www.ncbi.nlm.nih.gov\\/pubmed\\/22415991", "t": 1331923247, "hc": 1331822918, "cy": "Danvers", "ll": [ 42.576698, -70.954903 ] }\n'

数据转化json格式

In [7]:
import jsonpath = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt'records = [json.loads(line) for line in open(path)]  ## 列表推导式
In [4]:
records[0]
Out[4]:
{u'a': u'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11', u'al': u'en-US,en;q=0.8', u'c': u'US', u'cy': u'Danvers', u'g': u'A6qOVH', u'gr': u'MA', u'h': u'wfLQtf', u'hc': 1331822918, u'hh': u'1.usa.gov', u'l': u'orofrog', u'll': [42.576698, -70.954903], u'nk': 1, u'r': u'http://www.facebook.com/l/7AQEFzjSi/1.usa.gov/wfLQtf', u't': 1331923247, u'tz': u'America/New_York', u'u': u'http://www.ncbi.nlm.nih.gov/pubmed/22415991'}
In [5]:
records[0]['tz']
Out[5]:
u'America/New_York'
In [6]:
print(records[0]['tz'])
America/New_York

用python对时区进行计数

In [11]:
time_zones = [rec['tz'] for rec in records if 'tz' in rec] # 注意有些记录没有时区
In [10]:
time_zones[:10]
Out[10]:
[u'America/New_York', u'America/Denver', u'America/New_York', u'America/Sao_Paulo', u'America/New_York', u'America/New_York', u'Europe/Warsaw', u'', u'', u'']

定义计数函数

In [13]:
def get_counts(sequence):    counts = {}    for x in sequence:        if x in counts:            counts[x] += 1        else:            counts[x] = 1    return counts
In [15]:
from collections import defaultdict #用标准库函数实现计数def get_counts2(sequence):    counts = defaultdict(int) # values will initialize to 0    for x in sequence:        counts[x] += 1    return counts
In [16]:
counts = get_counts(time_zones)
In [17]:
counts['America/New_York']
Out[17]:
1251
In [18]:
len(time_zones)
Out[18]:
3440
In [20]:
#  获取前10个字典的值def top_counts(count_dict, n=10):    value_key_pairs = [(count, tz) for tz, count in count_dict.items()]    value_key_pairs.sort()    return value_key_pairs[-n:]
In [21]:
top_counts(counts)
Out[21]:
[(33, u'America/Sao_Paulo'), (35, u'Europe/Madrid'), (36, u'Pacific/Honolulu'), (37, u'Asia/Tokyo'), (74, u'Europe/London'), (191, u'America/Denver'), (382, u'America/Los_Angeles'), (400, u'America/Chicago'), (521, u''), (1251, u'America/New_York')]
In [22]:
# 用标准库实现前N个字典的值from collections import Countercounts = Counter(time_zones)counts.most_common(10)
Out[22]:
[(u'America/New_York', 1251), (u'', 521), (u'America/Chicago', 400), (u'America/Los_Angeles', 382), (u'America/Denver', 191), (u'Europe/London', 74), (u'Asia/Tokyo', 37), (u'Pacific/Honolulu', 36), (u'Europe/Madrid', 35), (u'America/Sao_Paulo', 33)]

用pandas对时区进行计数

In [24]:
%matplotlib inline
In [25]:
from __future__ import divisionfrom numpy.random import randnimport numpy as npimport osimport matplotlib.pyplot as pltimport pandas as pdplt.rc('figure', figsize=(10, 6))np.set_printoptions(precision=4)
In [26]:
import jsonpath = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt'lines = open(path).readlines()records = [json.loads(line) for line in lines]
In [28]:
from pandas import DataFrame, Seriesimport pandas as pdframe = DataFrame(records)  # DataFrame是pandas中基础的数据结构frame
Out[28]:
 _heartbeat_aalccyggrhhchhkwlllnkrttzu0NaNMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...en-US,en;q=0.8USDanversA6qOVHMAwfLQtf1.331823e+091.usa.govNaNorofrog[42.576698, -70.954903]1.0http://www.facebook.com/l/7AQEFzjSi/1.usa.gov/...1.331923e+09America/New_Yorkhttp://www.ncbi.nlm.nih.gov/pubmed/224159911NaNGoogleMaps/RochesterNYNaNUSProvomwszkSUTmwszkS1.308262e+09j.mpNaNbitly[40.218102, -111.613297]0.0http://www.AwareMap.com/1.331923e+09America/Denverhttp://www.monroecounty.gov/etc/911/rss.php2NaNMozilla/4.0 (compatible; MSIE 8.0; Windows NT ...en-USUSWashingtonxxr3QbDCxxr3Qb1.331920e+091.usa.govNaNbitly[38.9007, -77.043098]1.0http://t.co/03elZC4Q1.331923e+09America/New_Yorkhttp://boxer.senate.gov/en/press/releases/0316...3NaNMozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8)...pt-brBRBrazzCaLwp27zUtuOu1.331923e+091.usa.govNaNalelex88[-23.549999, -46.616699]0.0direct1.331923e+09America/Sao_Paulohttp://apod.nasa.gov/apod/ap120312.html4NaNMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...en-US,en;q=0.8USShrewsbury9b6kNlMA9b6kNl1.273672e+09bit.lyNaNbitly[42.286499, -71.714699]0.0http://www.shrewsbury-ma.gov/selco/1.331923e+09America/New_Yorkhttp://www.shrewsbury-ma.gov/egov/gallery/1341...5NaNMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...en-US,en;q=0.8USShrewsburyaxNK8cMAaxNK8c1.273673e+09bit.lyNaNbitly[42.286499, -71.714699]0.0http://www.shrewsbury-ma.gov/selco/1.331923e+09America/New_Yorkhttp://www.shrewsbury-ma.gov/egov/gallery/1341...6NaNMozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1...pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4PLLubanwcndER77zkpJBR1.331923e+091.usa.govNaNbnjacobs[51.116699, 15.2833]0.0http://plus.url.google.com/url?sa=z&n=13319232...1.331923e+09Europe/Warsawhttp://www.nasa.gov/mission_pages/nustar/main/...7NaNMozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/2...bg,en-us;q=0.7,en;q=0.3NoneNaNwcndERNaNzkpJBR1.331923e+091.usa.govNaNbnjacobsNaN0.0http://www.facebook.com/1.331923e+09 http://www.nasa.gov/mission_pages/nustar/main/...8NaNOpera/9.80 (X11; Linux zbov; U; en) Presto/2.1...en-US, enNoneNaNwcndERNaNzkpJBR1.331923e+091.usa.govNaNbnjacobsNaN0.0http://www.facebook.com/l.php?u=http%3A%2F%2F1...1.331923e+09 http://www.nasa.gov/mission_pages/nustar/main/...9NaNMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4NoneNaNzCaLwpNaNzUtuOu1.331923e+091.usa.govNaNalelex88NaN0.0http://t.co/o1Pd0WeV1.331923e+09 http://apod.nasa.gov/apod/ap120312.html10NaNMozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2)...en-us,en;q=0.5USSeattlevNJS4HWAu0uD9q1.319564e+091.usa.govNaNo_4us71ccioa[47.5951, -122.332603]1.0direct1.331923e+09America/Los_Angeleshttps://www.nysdot.gov/rexdesign/design/commun...11NaNMozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4...en-us,en;q=0.5USWashingtonwG7OIHDCA0nRz41.331816e+091.usa.govNaNdarrellissa[38.937599, -77.092796]0.0http://t.co/ND7SoPyo1.331923e+09America/New_Yorkhttp://oversight.house.gov/wp-content/uploads/...12NaNMozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2)...en-us,en;q=0.5USAlexandriavNJS4HVAu0uD9q1.319564e+091.usa.govNaNo_4us71ccioa[38.790901, -77.094704]1.0direct1.331923e+09America/New_Yorkhttps://www.nysdot.gov/rexdesign/design/commun...131.331923e+09NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN14NaNMozilla/5.0 (Windows; U; Windows NT 6.1; en-US...en-us,en;q=0.5USMarietta2rOUYcGA2rOUYc1.255770e+091.usa.govNaNbitly[33.953201, -84.5177]1.0direct1.331923e+09America/New_Yorkhttp://toxtown.nlm.nih.gov/index.php15NaNMozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1...zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4HKCentral DistrictnQvgJp00rtrrth1.317318e+09j.mpNaNwalkeryuen[22.2833, 114.150002]1.0http://forum2.hkgolden.com/view.aspx?type=BW&m...1.331923e+09Asia/Hong_Konghttp://www.ssd.noaa.gov/PS/TROP/TCFP/data/curr...16NaNMozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1...zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4HKCentral DistrictXdUNr00qWkgbq1.317318e+09j.mpNaNwalkeryuen[22.2833, 114.150002]1.0http://forum2.hkgolden.com/view.aspx?type=BW&m...1.331923e+09Asia/Hong_Konghttp://www.usno.navy.mil/NOOC/nmfc-ph/RSS/jtwc...17NaNMozilla/5.0 (Macintosh; Intel Mac OS X 10.5; r...en-us,en;q=0.5USBuckfieldzH1BFfMEx3jOIv1.331840e+091.usa.govNaNandyzieminski[44.299702, -70.369797]0.0http://t.co/6Cx4ROLs1.331923e+09America/New_Yorkhttp://www.usda.gov/wps/portal/usda/usdahome?c...18NaNGoogleMaps/RochesterNYNaNUSProvomwszkSUTmwszkS1.308262e+091.usa.govNaNbitly[40.218102, -111.613297]0.0http://www.AwareMap.com/1.331923e+09America/Denverhttp://www.monroecounty.gov/etc/911/rss.php19NaNMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4ITVenicewcndER20zkpJBR1.331923e+091.usa.govNaNbnjacobs[45.438599, 12.3267]0.0http://www.facebook.com/1.331923e+09Europe/Romehttp://www.nasa.gov/mission_pages/nustar/main/...20NaNMozilla/5.0 (compatible; MSIE 9.0; Windows NT ...es-ESESAlcalzQ95Hi51ytZYWR1.331671e+09bitly.comNaNjplnews[37.516701, -5.9833]0.0http://www.facebook.com/1.331923e+09Africa/Ceutahttp://voyager.jpl.nasa.gov/imagesvideo/uranus...21NaNMozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6...en-us,en;q=0.5USDavidsonvillewcndERMDzkpJBR1.331923e+091.usa.govNaNbnjacobs[38.939201, -76.635002]0.0http://www.facebook.com/1.331923e+09America/New_Yorkhttp://www.nasa.gov/mission_pages/nustar/main/...22NaNMozilla/4.0 (compatible; MSIE 8.0; Windows NT ...en-usUSHockessiny3ZImzDEy3ZImz1.331064e+091.usa.govNaNbitly[39.785, -75.682297]0.0direct1.331923e+09America/New_Yorkhttp://portal.hud.gov/hudportal/documents/hudd...23NaNMozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3)...en-usUSLititzwWiOiDPAwWiOiD1.330218e+091.usa.govNaNbitly[40.174999, -76.3078]0.0http://www.facebook.com/l.php?u=http%3A%2F%2F1...1.331923e+09America/New_Yorkhttp://www.tricare.mil/mybenefit/ProfileFilter...24NaNMozilla/5.0 (Windows; U; Windows NT 5.1; es-ES...es-es,es;q=0.8,en-us;q=0.5,en;q=0.3ESBilbaowcndER59zkpJBR1.331923e+091.usa.govNaNbnjacobs[43.25, -2.9667]0.0http://www.facebook.com/1.331923e+09Europe/Madridhttp://www.nasa.gov/mission_pages/nustar/main/...25NaNMozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1...en-GB,en;q=0.8,en-US;q=0.6,en-AU;q=0.4MYKuala LumpurwcndER14zkpJBR1.331923e+091.usa.govNaNbnjacobs[3.1667, 101.699997]0.0http://www.facebook.com/1.331923e+09Asia/Kuala_Lumpurhttp://www.nasa.gov/mission_pages/nustar/main/...26NaNMozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1...ro-RO,ro;q=0.8,en-US;q=0.6,en;q=0.4CYNicosiawcndER04zkpJBR1.331923e+091.usa.govNaNbnjacobs[35.166698, 33.366699]0.0http://www.facebook.com/?ref=tn_tnmn1.331923e+09Asia/Nicosiahttp://www.nasa.gov/mission_pages/nustar/main/...27NaNMozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8)...en-US,en;q=0.8BRSPaulozCaLwp27zUtuOu1.331923e+091.usa.govNaNalelex88[-23.5333, -46.616699]0.0direct1.331923e+09America/Sao_Paulohttp://apod.nasa.gov/apod/ap120312.html28NaNMozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X)...en-usNoneNaNvNJS4HNaNu0uD9q1.319564e+091.usa.govNaNo_4us71ccioaNaN0.0direct1.331923e+09 https://www.nysdot.gov/rexdesign/design/commun...29NaNMozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X...en-usNoneNaNFPX0IMNaNFPX0IL1.331923e+091.usa.govNaNtwittershareNaN1.0http://t.co/5xlp0B341.331923e+09 http://www.ed.gov/news/media-advisories/us-dep............................................................3530NaNMozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1...en-US,en;q=0.8USSan FranciscoxVZg4PCAwqUkTo1.331908e+09go.nasa.govNaNnasatwitter[37.7645, -122.429398]0.0http://www.facebook.com/l.php?u=http%3A%2F%2Fg...1.331927e+09America/Los_Angeleshttp://www.nasa.gov/multimedia/imagegallery/im...3531NaNMozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6...en-USNoneNaNwcndERNaNzkpJBR1.331923e+091.usa.govNaNbnjacobsNaN0.0direct1.331927e+09 http://www.nasa.gov/mission_pages/nustar/main/...3532NaNMozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2)...en-us,en;q=0.5USWashingtonAu3aUSDCA9ct6C1.331926e+091.usa.govNaNncsha[38.904202, -77.031998]1.0http://www.ncsha.org/1.331927e+09America/New_Yorkhttp://portal.hud.gov/hudportal/HUD?src=/press...3533NaNMozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) A...en-usUSJacksonvilleb2UtUJFLieCdgH1.301393e+09go.nasa.govNaNnasatwitter[30.279301, -81.585098]1.0direct1.331927e+09America/New_Yorkhttp://apod.nasa.gov/apod/3534NaNMozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8)...en-usUSFriscovNJS4HTXu0uD9q1.319564e+091.usa.govNaNo_4us71ccioa[33.149899, -96.855499]1.0direct1.331927e+09America/Chicagohttps://www.nysdot.gov/rexdesign/design/commun...3535NaNMozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/...en-usUSHoustonzIgLx8TXyrPaLt1.331903e+09aash.toNaNaashto[29.775499, -95.415199]1.0direct1.331927e+09America/Chicagohttp://ntl.bts.gov/lib/44000/44300/44374/FHWA-...3536NaNMozilla/5.0 (BlackBerry; U; BlackBerry 9800; e...en-US,en;q=0.5NoneNaNxIcyimNaNyG1TTf1.331728e+09go.nasa.govNaNnasatwitterNaN0.0http://t.co/g1VKE8zS1.331927e+09 http://www.nasa.gov/mission_pages/hurricanes/a...3537NaNMozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2)...es-es,es;q=0.8,en-us;q=0.5,en;q=0.3HNTegucigalpazCaLwp08w63FZW1.331547e+091.usa.govNaNbufferapp[14.1, -87.216698]0.0http://t.co/A8TJyibE1.331927e+09America/Tegucigalpahttp://apod.nasa.gov/apod/ap120312.html3538NaNMozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Ma...en-usUSLos AngelesqMac9kCAqds1Ge1.310474e+091.usa.govNaNhealthypeople[34.041599, -118.298798]0.0direct1.331927e+09America/Los_Angeleshttp://healthypeople.gov/2020/connect/webinars...3539NaNMozilla/5.0 (compatible; Fedora Core 3) FC3 KDENaNUSBellevuezu2M5oWAzDhdro1.331586e+09bit.lyNaNglimtwin[47.615398, -122.210297]0.0direct1.331927e+09America/Los_Angeleshttp://www.federalreserve.gov/newsevents/press...3540NaNMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...en-US,en;q=0.8USPaysonwcndERUTzkpJBR1.331923e+091.usa.govNaNbnjacobs[40.014198, -111.738899]0.0http://www.facebook.com/l.php?u=http%3A%2F%2F1...1.331927e+09America/Denverhttp://www.nasa.gov/mission_pages/nustar/main/...3541NaNMozilla/5.0 (X11; U; OpenVMS AlphaServer_ES40;...NaNUSBellevuezu2M5oWAzDhdro1.331586e+091.usa.govNaNglimtwin[47.615398, -122.210297]0.0direct1.331927e+09America/Los_Angeleshttp://www.federalreserve.gov/newsevents/press...3542NaNMozilla/5.0 (compatible; MSIE 9.0; Windows NT ...en-usUSPittsburgy3reI1CAy3reI11.331926e+091.usa.govNaNbitly[38.0051, -121.838699]0.0http://www.facebook.com/l.php?u=http%3A%2F%2F1...1.331927e+09America/Los_Angeleshttp://www.sba.gov/community/blogs/community-b...35431.331927e+09NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN3544NaNMozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0.1) ...en-us,en;q=0.5USWentzvillevNJS4HMOu0uD9q1.319564e+091.usa.govNaNo_4us71ccioa[38.790001, -90.854897]1.0direct1.331927e+09America/Chicagohttps://www.nysdot.gov/rexdesign/design/commun...3545NaNMozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2)...en-us,en;q=0.5USSaint CharlesvNJS4HILu0uD9q1.319564e+091.usa.govNaNo_4us71ccioa[41.9352, -88.290901]1.0direct1.331927e+09America/Chicagohttps://www.nysdot.gov/rexdesign/design/commun...3546NaNMozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Ma...en-usUSLos AngelesqMac9kCAqds1Ge1.310474e+091.usa.govNaNhealthypeople[34.041599, -118.298798]1.0direct1.331927e+09America/Los_Angeleshttp://healthypeople.gov/2020/connect/webinars...3547NaNMozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8)...en-usUSSilver Springy0jYkgMDy0jYkg1.331852e+091.usa.govNaNbitly[39.052101, -77.014999]1.0direct1.331927e+09America/New_Yorkhttp://www.epa.gov/otaq/regs/fuels/additive/e1...3548NaNMozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Ma...en-usUSMcgeheey5rMacARxANY6O1.331916e+091.usa.govNaNtwitterfeed[33.628399, -91.356903]1.0https://twitter.com/fdarecalls/status/18069759...1.331927e+09America/Chicagohttp://www.fda.gov/Safety/Recalls/ucm296326.htm3549NaNMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...sv-SE,sv;q=0.8,en-US;q=0.6,en;q=0.4SESollefteeH8wu247dtjei1.260316e+091.usa.govNaNtweetdeckapi[63.166698, 17.266701]1.0direct1.331927e+09Europe/Stockholmhttp://www.nasa.gov/mission_pages/WISE/main/in...3550NaNMozilla/4.0 (compatible; MSIE 8.0; Windows NT ...en-usUSConshohockenA00b72PAyGSwzn1.331918e+091.usa.govNaNaddthis[40.0798, -75.2855]0.0http://www.linkedin.com/home?trk=hb_tab_home_top1.331927e+09America/New_Yorkhttp://www.nlm.nih.gov/medlineplus/news/fullst...3551NaNMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...en-US,en;q=0.8NoneNaNwcndERNaNzkpJBR1.331923e+091.usa.govNaNbnjacobsNaN0.0http://plus.url.google.com/url?sa=z&n=13319268...1.331927e+09 http://www.nasa.gov/mission_pages/nustar/main/...3552NaNMozilla/5.0 (Windows; U; Windows NT 6.1; en-US...NaNUSDecaturrqgJuEALxcz8vt1.331227e+091.usa.govNaNbootsnall[34.572701, -86.940598]0.0direct1.331927e+09America/Chicagohttp://travel.state.gov/passport/passport_5535...3553NaNMozilla/4.0 (compatible; MSIE 7.0; Windows NT ...en-usUSShrewsbury9b6kNlMA9b6kNl1.273672e+09bit.lyNaNbitly[42.286499, -71.714699]0.0http://www.shrewsbury-ma.gov/selco/1.331927e+09America/New_Yorkhttp://www.shrewsbury-ma.gov/egov/gallery/1341...3554NaNMozilla/4.0 (compatible; MSIE 7.0; Windows NT ...en-usUSShrewsburyaxNK8cMAaxNK8c1.273673e+09bit.lyNaNbitly[42.286499, -71.714699]0.0http://www.shrewsbury-ma.gov/selco/1.331927e+09America/New_Yorkhttp://www.shrewsbury-ma.gov/egov/gallery/1341...3555NaNMozilla/4.0 (compatible; MSIE 9.0; Windows NT ...enUSParamuse5SvKENJfqPSr91.301298e+091.usa.govNaNtweetdeckapi[40.9445, -74.07]1.0direct1.331927e+09America/New_Yorkhttp://www.fda.gov/AdvisoryCommittees/Committe...3556NaNMozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1...en-US,en;q=0.8USOklahoma CityjQLtP4OKjQLtP41.307530e+091.usa.govNaNbitly[35.4715, -97.518997]0.0http://www.facebook.com/l.php?u=http%3A%2F%2F1...1.331927e+09America/Chicagohttp://www.okc.gov/PublicNotificationSystem/Fo...3557NaNGoogleMaps/RochesterNYNaNUSProvomwszkSUTmwszkS1.308262e+09j.mpNaNbitly[40.218102, -111.613297]0.0http://www.AwareMap.com/1.331927e+09America/Denverhttp://www.monroecounty.gov/etc/911/rss.php3558NaNGoogleProducerNaNUSMountain ViewzjtI4XCAzjtI4X1.327529e+091.usa.govNaNbitly[37.419201, -122.057404]0.0direct1.331927e+09America/Los_Angeleshttp://www.ahrq.gov/qual/qitoolkit/3559NaNMozilla/4.0 (compatible; MSIE 8.0; Windows NT ...en-USUSMc LeanqxKrTKVAqxKrTK1.312898e+091.usa.govNaNbitly[38.935799, -77.162102]0.0http://t.co/OEEEvwjU1.331927e+09America/New_Yorkhttp://herndon-va.gov/Content/public_safety/Pu...

3560 rows × 18 columns

In [29]:
frame['tz'][:10]
Out[29]:
0     America/New_York1       America/Denver2     America/New_York3    America/Sao_Paulo4     America/New_York5     America/New_York6        Europe/Warsaw7                     8                     9                     Name: tz, dtype: object
In [30]:
tz_counts = frame['tz'].value_counts()tz_counts[:10]
Out[30]:
America/New_York       1251                        521America/Chicago         400America/Los_Angeles     382America/Denver          191Europe/London            74Asia/Tokyo               37Pacific/Honolulu         36Europe/Madrid            35America/Sao_Paulo        33Name: tz, dtype: int64
In [31]:
clean_tz = frame['tz'].fillna('Missing')# 替换缺失值clean_tz[clean_tz == ''] = 'Unknown'# 替换空字符串tz_counts = clean_tz.value_counts()tz_counts[:10]
Out[31]:
America/New_York       1251Unknown                 521America/Chicago         400America/Los_Angeles     382America/Denver          191Missing                 120Europe/London            74Asia/Tokyo               37Pacific/Honolulu         36Europe/Madrid            35Name: tz, dtype: int64
In [32]:
plt.figure(figsize=(10, 4))
Out[32]:
<matplotlib.figure.Figure at 0x44bc230>
<matplotlib.figure.Figure at 0x44bc230>
In [33]:
tz_counts[:10].plot(kind='barh', rot=0)
Out[33]:
<matplotlib.axes._subplots.AxesSubplot at 0x44bcbd0>

按照WINDOWS和非WINDOWS统计最常出现的时区

In [37]:
frame['a'][1]   # 看下浏览器相关信息
Out[37]:
u'GoogleMaps/RochesterNY'
In [36]:
frame['a'][50]
Out[36]:
u'Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2'
In [39]:
results = Series([x.split()[0] for x in frame.a.dropna()])results[:5]
Out[39]:
0               Mozilla/5.01    GoogleMaps/RochesterNY2               Mozilla/4.03               Mozilla/5.04               Mozilla/5.0dtype: object
In [40]:
results.value_counts()[:8]
Out[40]:
Mozilla/5.0                 2594Mozilla/4.0                  601GoogleMaps/RochesterNY       121Opera/9.80                    34TEST_INTERNET_AGENT           24GoogleProducer                21Mozilla/6.0                    5BlackBerry8520/5.0.0.681       4dtype: int64
In [41]:
cframe = frame[frame.a.notnull()]# 移除空值
In [42]:
operating_system = np.where(cframe['a'].str.contains('Windows'),                            'Windows', 'Not Windows')  #跟进是否包含“Windows”来判断operating_system[:5]
Out[42]:
array(['Windows', 'Not Windows', 'Windows', 'Not Windows', 'Windows'],       dtype='|S11')
In [43]:
by_tz_os = cframe.groupby(['tz', operating_system])
In [44]:
agg_counts = by_tz_os.size().unstack().fillna(0)agg_counts[:10]
Out[44]:
 Not WindowsWindowstz   245.0276.0Africa/Cairo0.03.0Africa/Casablanca0.01.0Africa/Ceuta0.02.0Africa/Johannesburg0.01.0Africa/Lusaka0.01.0America/Anchorage4.01.0America/Argentina/Buenos_Aires1.00.0America/Argentina/Cordoba0.01.0America/Argentina/Mendoza0.01.0
In [45]:
# Use to sort in ascending orderindexer = agg_counts.sum(1).argsort()indexer[:10]
Out[45]:
tz                                  24Africa/Cairo                      20Africa/Casablanca                 21Africa/Ceuta                      92Africa/Johannesburg               87Africa/Lusaka                     53America/Anchorage                 54America/Argentina/Buenos_Aires    57America/Argentina/Cordoba         26America/Argentina/Mendoza         55dtype: int64
In [46]:
count_subset = agg_counts.take(indexer)[-10:]count_subset
Out[46]:
 Not WindowsWindowstz  America/Sao_Paulo13.020.0Europe/Madrid16.019.0Pacific/Honolulu0.036.0Asia/Tokyo2.035.0Europe/London43.031.0America/Denver132.059.0America/Los_Angeles130.0252.0America/Chicago115.0285.0 245.0276.0America/New_York339.0912.0
In [47]:
plt.figure()
Out[47]:
<matplotlib.figure.Figure at 0x5e69310>
<matplotlib.figure.Figure at 0x5e69310>
In [48]:
count_subset.plot(kind='barh', stacked=True)
Out[48]:
<matplotlib.axes._subplots.AxesSubplot at 0x5e46eb0>
In [49]:
plt.figure()
Out[49]:
<matplotlib.figure.Figure at 0x5c3a2b0>
<matplotlib.figure.Figure at 0x5c3a2b0>
In [50]:
normed_subset = count_subset.div(count_subset.sum(1), axis=0)normed_subset.plot(kind='barh', stacked=True)
Out[50]:
<matplotlib.axes._subplots.AxesSubplot at 0x5b28d50>
阅读全文
0 0
原创粉丝点击