数据科学 您所在的位置:网站首页 常用的中文分词工具 数据科学

数据科学

2023-01-22 20:42| 来源: 网络整理| 查看: 265

| 1.1 Matplotlib是什么?

Matplotlib是Python中最受欢迎的数据科学库之一。它通常用来创建图、表。它还提供了通过更改颜色、标签等自定义图形的功能。

要开始使用 Matplotlib,我们需要首先导入:

import matplotlib.pyplot as plt

Tips :pyplot是我们常用的模块。plt是用于导入matplotlib的最常用名称。

| 1.2 Matplotlib

Matplotlib和 Pandas配合使用。

为了展示matplotlib的力量,让我们用虚拟数据创建一个图表 。

Tips :我们将创建一个包含一些数字的pandas序列,并使用他来创建我们的图表。如果你对Pandas还不熟悉,可以参见Pandas进行数据操作 。

import pandas as pd import matplotlib.pyplot as plt s = pd.Series([18, 42, 9, 32, 81, 64, 3]) s.plot(kind='bar') plt.savefig('plt.png')

.plot()函数被用来创建一个图表,它可以使用Pandas Series或 DataFrame。

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :来自该系列的数据使用Y轴,而索引绘制在X轴上。由于我们没有为数据提供自定义索引,因此使用默认的数字索引。

值得一提的是plt.savefig(”plot.png”)用于在我们的编程环境中保存和显示图表。

在大多数环境中,不需要此步骤,因为调用 plot() 函数会自动显示图表。

数据科学---使用Matplotlib进行数据可视化

| 2.1 折线图(Line Plot)

Matplotlib支持创建不同的图表类型。

让我们从最基本的–折叠*行图开始。

[En]

Let’s start with the most basic– * fold * line map * .

我们将使用COVID-19数据来创建我们的图表。

让我们看看12月份的病例数量。

要创建线图,我们只需要调用 DataFrame上的 plot()函数,该函数包含相应的数据:

df[df['month'] == 12]['cases'].plot()

完整代码:

import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv("ca-covid.csv") df.drop('state', axis=1, inplace=True) df['date'] = pd.to_datetime(df['date'], format="%d.%m.%y") df['month'] = df['date'].dt.month df.set_index('date', inplace=True) df[df['month'] == 12]['cases'].plot() plt.savefig('plot.png')

Result:

数据科学---使用Matplotlib进行数据可视化

我们还可以在图表中包含多行。例如,让我们在DataFrame中包含死亡列:

(df[df['month'] == 12])[['cases', 'deaths']].plot()

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :正如您从结果中看到的,matplotlib会自动添加一个图例,以显示列的线条颜色。

数据科学---使用Matplotlib进行数据可视化

| 3.1 条形图(Bar Plot)

plot()函数可以带一个 kind参数,指定我们想要生成的图表类型。

对于条形图,请提供 kind = “bar”。

让我们制作一个每月感染情况的条形图:

[En]

Let’s make a bar chart of monthly infections:

(df.groupby('month')['cases'].sum()).plot(kind="bar")

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :我们首先按月份列对数据进行分析,然后计算该月份的案例总和。

类似于折线图的一部分,我们也可以画多个柱。

[En]

Similar to the part of a line chart, we can also draw multiple columns.

stacked属性可用于指定是否应将条形图堆叠在一起。​​​​​​​

df = df.groupby('month')[['cases', 'deaths']].sum() df.plot(kind="bar", stacked=True)

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :值得一提的是当你指定kind=”barh”,你将会得到一个水平的条形图。

Result:

数据科学---使用Matplotlib进行数据可视化

数据科学---使用Matplotlib进行数据可视化

| 4.1 框图和直方图(Box Plot & Histogram)

| 4.11 框图(Box Plot)

框图用于可视化列中值的分布,基本上可视化 describe()函数的结果。

例如,让我们为6月份的案例创建一个框图:

df[df['month'] == 6]['cases'].plot(kind="box")

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :绿线显示中位数。框显示上四分位数和下四分位数(25%的数据大于或小于这些值)。

圆圈显示异常值,而黑线显示最先/最大值,不包括异常值。

| 4.12 直方图(Histogram)

与方框图类似,直方图显示数据的分布。

[En]

Similar to the block diagram, the histogram shows the distribution of the data.

直方图在视觉上类似于条形图,但直方图显示的是一组数据的频率,而不是单个数据点;因此,每条线之间没有空格。通常,直方图将数据分组为块。

[En]

A histogram is visually similar to a bar chart, however, the histogram shows the frequency of a set of data rather than a single data point; therefore, there are no spaces between each line. Typically, histograms group data into blocks.

df[df['month'] == 6]['cases'].plot(kind="hist")

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :直方图将数据分组为9条并且显示了频率 。你能看得出来,只有单个数据点超过6000.

您可以使用bins属性手动指定要使用的bin数量:plot(kind=”hist”, bins = 10)

数据科学---使用Matplotlib进行数据可视化

| 5.1 面积图、散点图和饼形图

| 5.11 面积图(Area Plot)

与上面类似, kind = ‘area’来创建一个面积图。​​​​​​​

df[df['month'] == 6] [['cases', 'deaths']].plot(kind="area", stacked=False)

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :默认情况下,区域图是堆叠的,所以在这里我们显式指定stacked=False .

| 5.12 散点图(Scatter Plot)

使用散点图来显示两个变量之间的关系。例如我们可以可视化案例与死亡人数之间的关系:​​​​​​​

df[df['month'] == 6] [['cases', 'deaths']].plot(kind="scatter", x='cases', y='deaths')

Result:

数据科学---使用Matplotlib进行数据可视化

Tips : 我们需要指定用于绘图的x列和y列.

数据点在图表周围看起来散落,赋予了这种类型的数据可视化的名称

| 5.13 饼形图(Pie Chart)

我们可以使用 kind = “pie”创建饼图。让我们按照月为案例创建一个:

df.groupby('month')['cases'].sum().plot(kind='pie')

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :饼图通常用于显示百分比或比例数据,当您有高达6个类别时,通常使用饼图.

数据科学---使用Matplotlib进行数据可视化

| 6.1 绘图格式(Plot Formatting )

Matplotlib提供了许多参数来自定义您的图表。

legend参数指定是否显示图例。

您还可以通过设置 xlabel和 ylabel参数来更改轴的标签。​​​​​​​

df[['cases', 'deaths']].plot(kind='line', legend=True) plt.xlabel('Days in June') plt.ylabel('Number')

Result:

数据科学---使用Matplotlib进行数据可视化

Tips :默认情况下,pandas选择索引名称为xlabel,同时将ylabel置空.

suptitle()函数可用于设置图标标题:

plt.suptitle("COVID-19 in June")

我们还可以通过设置COLOR属性来更改图表中使用的颜色,该属性接受十六进制颜色值。

[En]

We can also change the color used in the chart by setting the color property, which accepts hexadecimal color values.

例如,让我们将大小写设置为黑色,将死亡设置为红色:​

[En]

For example, let’s set the case to black and death to red: ​

df[['cases', 'deaths']].plot(kind='area', legend=True, stacked=False, color=['#000', '#E73E19'])

数据科学---使用Matplotlib进行数据可视化

数据科学---使用Matplotlib进行数据可视化

| 7.1 写在最后

本节给大家介绍了数据科学三剑客之一的matplotlib。涉及到了常见的属性和函数,并且介绍了常见的操作。后续我们会继续介绍数据科学或人工智能方面的内容。希望大家还是动手做一做,有问题可以私信我,欢迎交流和提出您的宝贵意见。

你要偷偷学Python,然后惊艳所有人。

数据科学---使用Matplotlib进行数据可视化

数据科学---使用Matplotlib进行数据可视化

-END-

感谢大家的关注

你关心的,都在这里

Original: https://blog.csdn.net/Zesheng_Wang/article/details/123753308Author: 此间过客~Title: 数据科学—使用Matplotlib进行数据可视化

相关阅读 Title: pd.read_csv/jieba.analyse.set_stop_words 目前网上能找到的方法都是自己做个停用词字典,然后在打印分词结果之前将停用词去掉。#也就是说分词的过程不变,打印时做个集合差运算。text =u’听说你超级喜欢万众掘金小游戏啊啊啊’

default_mode = jieba.cut(text,cut_all=False)stopw = [line.strip().decode(‘utf-8’) for line in open(‘D:\Python27\stopword.txt’).readlines()]print u’搜索引擎模式:’,u’/’.join(set(default_mode)-set(stopw))

除了效率低,这种方法有另一个弊端,就是你的停用词一定要被分词器正确的拆分,否则是没办法去掉的。#比如”啊啊啊”这个词是被分成一个词的,但是你的停用词字典中只有”啊”没有”啊啊啊”,#这个时候”啊啊啊”就不会被去掉。#所幸这个问题实际使用时影响是有限的,通过丰富你的停用词字典和反复测试,可以有效改善。另外一个方法是使用extract_tags函数,这个函数会根据TF-IDF算法将特征词提取出来,在提取之前会去掉停用词,可以人工指定停用词字典,代码如下:jieba.analyse.set_stop_words(‘D:\Python27\stopword.txt’)

tags = jieba.analyse.extract_tags(text,20)

pandas读取csv文件数据的方法及注意点

泰克尼客12018.07.17 11:28:26字数 904阅读 94,529pandas是一个高效的数据分析工具。基于其高度抽象的数据结构DataFrame(点击这里了解DataFrame数据结构),几乎可以对数据进行任何你想要的操作。

由于现实世界中数据源的格式非常多,pandas也支持了不同数据格式的导入方法,本文介绍pandas如何从csv文件中导入数据。

数据导入到pandas

从上图可以看出,我们要做的工作就是把存储在csv格式中的数据读入并转换成DataFrame格式。pandas提供了一个非常简单的api函数来实现这个功能:read_csv()。

import pandas as pd

CSV_FILE_PATH = ‘./test.csv’df = pd.read_csv(CSV_FILE_PATH)print(df.head(5))只要简单地指定csv文件的路径,便可以得到DataFrame格式的数据df。对于理想情况下的数据,导入过程就是这么简单!

下面考虑这种情况:假设csv文件头部有几个无效行,那么打印出来的结果可能如下所示:

1 2 3 4

0 datetime host hit volume1 2018-07-24 09:00:00 weibo.com 20 10202 2018-07-25 09:00:00 qq.com no 20 10283 2018-07-26 19:00:00 sina.com 25 11814 2018-07-27 21:00:00 sohu.com 15 4582pandas把【1,2,3,4】这组无效数据当作了column name;而实际上,我们更偏向于将【datetime,host,hit,volume】这组数据当作column name。对于这种情况,read_csv()函数提供了一个参数:skiprows,用于指定跳过csv文件的头部的前几行。在这里,我们跳过1行即可。

import pandas as pd

CSV_FILE_PATH = ‘./test.csv’df = pd.read_csv(CSV_FILE_PATH, skiprows=1)print(df.head(5))得到的结果如下所示:

datetime host hit volume

0 2018-07-24 09:00:00 weibo.com 20 10201 2018-07-25 09:00:00 qq.com no 20 10282 2018-07-26 19:00:00 sina.com 25 11813 2018-07-27 21:00:00 sohu.com 15 4582

import pandas as pd

CSV_FILE_PATH = ‘./test.csv’df = pd.read_csv(CSV_FILE_PATH)print(df.head(5))print(‘datatype of column hit is: ‘ + str(df[‘hit’].dtypes))得出的结果:

datetime host hit volume

0 2018-07-24 09:00:00 weibo.com 20 10201 2018-07-25 09:00:00 qq.com 20 10282 2018-07-26 19:00:00 sina.com 25 11813 2018-07-27 21:00:00 sohu.com 15 4582datatype of column hit is: int64pandas将hit这一列的数据类型判定为了int64,这显然方便未来我们对于该列数据的运算。但是在实际情况中,我们经常会面临数据缺失的问题,如果出现这种情况,我们往往会用一些占位符来表达。假设,我们用missing这个占位符来表示数据缺失,仍使用上述代码,来探索下会发生些什么:

datetime host hit volume

0 2018-07-24 09:00:00 weibo.com 20 10201 2018-07-25 09:00:00 qq.com 20 10282 2018-07-26 19:00:00 sina.com missing missing3 2018-07-27 21:00:00 sohu.com 15 4582datatype of column hit is: object由于hit这一列中出现了missing这个字符串,pandas将hit这一列的数据类型判断成了object。这会给我们对该列数据的运算带来影响。例如,假设我们要计算hit列前两行数据的和,代码如下:

print(df[‘hit’][0] + df[‘hit’][1])结果是:

2020我们想要的是数学结果,但我们得到的是字符串连接结果。这是由于对数据类型的误判造成的严重影响。

[En]

What we wanted was a mathematical result, but what we got was a string concatenation result. This is due to the serious impact of misjudgment of data types.

对于这种情况,read_csv()函数也提供了一个简单的处理方式,只需要通过na_value参数指定占位符,pandas便会在读入数据的过程中自动将这些占位符转换成NaN,从而不影响pandas对column数据类型的正确判断。示例代码:

import pandas as pd

CSV_FILE_PATH = ‘./test.csv’

df = pd.read_csv(CSV_FILE_PATH, skiprows=0, na_values=[‘missing’)print(df.head(5))print(‘datatype of column hit is: ‘ + str(df[‘hit’].dtypes))print(df[‘hit’][0] + df[‘hit’][1])运行结果如下:

datetime host hit volume

0 2018-07-24 09:00:00 weibo.com 20.0 1020.01 2018-07-25 09:00:00 qq.com 20.0 1028.02 2018-07-26 19:00:00 sina.com NaN NaN3 2018-07-27 21:00:00 sohu.com 15.0 4582.0datatype of column hit is: float6440.0可以看到,pandas将数据集中的missing单元全部转换为了NaN,并成功判断出hit这一列的数据类型。

通过指定的文件路径,从本地读取csv文件,并将数据转换成DataFrame格式更正数据集的头部(column)正确处理缺失数据推断每一列的数据类型当然,read_csv()函数还有一系列其他参数来应对各种情况,遇到具体问题的同学可参考其接口指南。

Original: https://blog.csdn.net/qq_15821487/article/details/115719315Author: 愚昧之山绝望之谷开悟之坡Title: pd.read_csv/jieba.analyse.set_stop_words

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/325693/

转载文章受原作者版权保护。转载请注明原作者出处!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有