pandas - cookbook 第二章 选择数据 & 找出最常见的投诉类型

pandas - cookbook 第二章 选择数据 & 找出最常见的投诉类型


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


# The usual preamble
# matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt

# # Make the graphs a bit prettier, and bigger
# pd.set_option('display.mpl_style', 'default')

# This is necessary to show lots of columns in pandas 0.12.
# Not necessary in pandas 0.13.
pd.set_option('display.width', 5000)
pd.set_option('display.max_columns', 60)

plt.rcParams['figure.figsize'] = (15, 5)

在这里,我们将使用新的数据集,来展示如何处理更大的数据集。这是一个纽约市公开的数据311投诉服务请求的子集。

注:可以通过github下载该数据集 https://raw.githubusercontent.com/jvns/pandas-cookbook/master/data/311-service-requests.csv

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

输出

sys:1: DtypeWarning: Columns (8) have mixed types. Specify dtype option on import or set low_memory=False.

依赖于记得pandas版本,你可能回看到一些错误类似于 "DtypeWarning: Columns (8) have mixed types"。意思是说数据中有一些是有问题的。本例中很可能是有一些列的数据实体是字符串,而一些是整型。

现在我们可以忽略它而且我们不希望产生问题,但是长期的运行过程中需要考虑这些警告带来的问题。

2.1 概要

当你打印一个大数据帧时,它将仅仅显示开头的几行。

如果你不想这样,不用惊慌,默认行为已修改在pandas 0.12 和 0.13,0.13将回展示数据帧的概要,这包括了所有列,和每列有多少非空数据。

2.2 选择列和行

想要选择列,我们可以使用列名索引,如下所示

print(complaints['Complaint Type'])

想要的到数据帧的前五行,我们可以使用切片: df[:5]

这是一个很好的方法,来通过直观感觉来获得数据帧的信息。花一分钟时间看看数据集的内容吧。

print(complaints[:5])

我们可以将前两个查找方式合并起来,查出某列的前五行,如下所示

print(complaints['Complaint Type'][:5])

或者

print(complaints[:5]['Complaint Type'])

选择的顺序无关紧要。

2.3 选择多行

如果我们想知道投诉类型和区呢?但是没有其他的信息? Pandas 可以简单的选择你想要的列,只需要写入列名就可以了。同样和可以用切片来选择前几行。

print(complaints[['Complaint Type', 'Borough']][:10])

2.4 最常见的投诉是啥?

这个问题太容易回答了! 从.value_counts()方法我们就可以得到。同样,也可以使用切片来获取我们想要的区间数据。

print(complaints['Complaint Type'].value_counts()[:10])

为了更好,我们可以将他们画出来。

complaints['Complaint Type'].value_counts()[:10].plot(kind='bar')
plt.show()
Figure_1.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容