美文网首页我爱编程
pandas - cookbook 第三章 哪个区的噪音投诉最多

pandas - cookbook 第三章 哪个区的噪音投诉最多

作者: 踌躇月光 | 来源:发表于2018-04-03 23:05 被阅读0次

    pandas - cookbook 第三章 哪个区的噪音投诉最多?(或者,选择数据多样性)


    以下内容翻译自 https://github.com/jvns/pandas-cookbook


    complaints = pd.read_csv('../data/311-service-requests.csv')
    

    我们继续纽约311投诉服务请求的例子。

    3.1 只选择噪音投诉

    想要知道那个区有最多的噪音投诉,首先,我们得看看数据长啥样。

    complaints[:5]
    

    为了获得噪音投诉,我们需要找到"投诉类型"所在得行,该行得列是"噪音-街道/人行道",我会展示如何实现它,而且会解释为何如此。

    noise_complaints = complaints[complaints['Complaint Type'] == "Noise - Street/Sidewalk"]
    noise_complaints[:3]
    

    如你看 noise_complaints, 你将看到是有效得。它只包含了正确得投诉类型。但是它为什么会这样?我们来将它拆分成两部分。

    complaints['Complaint Type'] == "Noise - Street/Sidewalk"
    

    这是一个大数组,包含了好多 TrueFalse,每行都再我们得数据帧中,当我们用这个数组索引数据帧,我们得到了行是数组评估为True的行。这点特别重要,通过布尔数组来过滤数据帧,而且数据帧索引,必须与数据帧有相同的长度。

    你同样可以将多个条件用 & 操作符连接,如下所示:

    is_noise = complaints['Complaint Type'] == "Noise - Street/Sidewalk"
    in_brooklyn = complaints['Borough'] == "BROOKLYN"
    complaints[is_noise & in_brooklyn][:5]
    

    或者我们只需要一部分列:

    complaints[is_noise & in_brooklyn][['Complaint Type', 'Borough', 'Created Date', 'Descriptor']][:10]
    

    3.2 numpy arrays 回归

    在pandas内部,列的类型是 pd.Series,pandas Series 内部是 numpy arrays, 如果你添加 .values 到任何 Series 之后,你将的到内部的 numpy array.

    3.3 哪个区有更多的噪音投诉?

    is_noise = complaints['Complaint Type'] == "Noise - Street/Sidewalk"
    noise_complaints = complaints[is_noise]
    (noise_complaints['Borough'].value_counts())
    

    是曼哈顿!但是如果我们将数量除以总数,这样数据就会更加敏感,这是很容易操作的。

    noise_complaint_counts = noise_complaints['Borough'].value_counts()
    complaint_counts = complaints['Borough'].value_counts()
    
    noise_complaint_counts / complaint_counts
    

    相关文章

      网友评论

        本文标题:pandas - cookbook 第三章 哪个区的噪音投诉最多

        本文链接:https://www.haomeiwen.com/subject/gqrhhftx.html