优草派  >   Python

以911新闻为例演示Python实现数据可视化的教程

高伟            来源:优草派

在本教程中,我们将使用 Python 中的 pandas 和 matplotlib 库来对 911 新闻进行数据可视化。我们将使用一个包含所有 911 新闻的 CSV 文件,并学习如何使用 pandas 从 CSV 文件中读取数据。之后,我们将使用 matplotlib 来生成柱状图、线图和饼图,以便更好地理解数据。

首先,让我们从下载并导入所需的库开始。我们需要 pandas 和 matplotlib,如果你尚未安装这些库,请运行以下命令:

以911新闻为例演示Python实现数据可视化的教程

```

!pip install pandas matplotlib

```

现在,我们将从 Kaggle 网站下载包含所有 911 新闻的 CSV 文件。此数据集有 996,717 行数据。我们可以从此处下载数据集:https://www.kaggle.com/mchirico/montcoalert 。我们可以使用 pandas 从 CSV 文件中读取数据。pandas.read_csv()方法使我们能够读取 CSV 文件及其内容,如下所示:

```

df = pd.read_csv('911.csv')

```

现在,我们可以开始根据需要处理数据。我们可以使用 pandas 的 groupby() 方法来对数据进行分类,以便更好地理解消息性质的周期性和分布。

```

df.groupby('Reason')['Reason'].count().sort_values(ascending=False)

```

通过运行以上代码,我们可以看到每个原因(EMS,Traffic 和 Fire)的计数。下面是可视化 EMS 调用值的柱状图、折线图和饼图。同样的方式,我们可以可视化其他类型的调用。

```

plt.figure(figsize=(8, 6))

plt.xticks(rotation=60)

plt.title('EMS Calls Count')

sns.countplot(x='Reason', data=df[df['Reason'] == 'EMS'])

plt.show()

```

```

plt.figure(figsize=(8, 6))

plt.xticks(rotation=60)

plt.title('EMS Calls Count')

plt.plot(df[df['Reason'] == 'EMS'].groupby('timeStamp')['timeStamp'].count())

plt.show()

```

```

data = df[df['Reason'] == 'EMS'].groupby('timeStamp')['timeStamp'].count()

plt.figure(figsize=(8, 8))

labels = data.sort_values(ascending=False).index[:5]

plt.pie(data.sort_values(ascending=False)[:5], labels=labels, autopct='%1.1f%%')

plt.show()

```

通过这些图表,我们可以了解警报的周期性和分布。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行