五款必备高效Python数据分析库,你知道几个?
课工场 | 2021-08-27 16:03:32  175 浏览

在大数据时代,数据思维已开始深刻变革各行各业,从我们的电商消费信息、运动轨迹、社交数据、产品使用习惯,到企业的调研、设计、产品、运营、营销,再到交通、金融、生产制造、公共服务。而由于Python在数据获取、数据处理、数据分析、数据挖掘、数据可视化、机器学习、人工智能等方面有着非常多成熟的库以及活跃的社区,构成数据科学领域最为完整且完善的生态。

尤其是在NLP(自然语言处理)项目中,用Python来处理数据也就变得更加广泛了。下面将详细地介绍五款必备的高效Python数据分析库。这会对我们编写高级复杂的程序帮助很大。但不用担心,你不需要有任何技术基础就可上手这些库。

一、Numerizer库,文本数字的分析转换

Numerizer是一个将自然语言中文本数字快速转换为整数型(int)和浮点型(float)数字的Python模块或库。它是一个开源的GitHub项目。特别说明,为了方便演示该库的使用。这里推荐使用Anaconda, 它是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,非常适合初学者。

1.Numerizer库的安装

打开Anaconda的终端,输入如下语句进行Numerizer库的安装。

pip install numerizer

2. Numerizer库实例演示

安装完成后,我们可以运行Anaconda内置的spyder,并输入以下语句

from numerizer import numerize

numerize('forty two')

numerize('forty-two')

numerize('four hundred and sixty two')

numerize('one fifty')

numerize('twelve hundred')

numerize('twenty one thousand four hundred and seventy three')

numerize('one million two hundred and fifty thousand and seven')

numerize('one billion and one')

numerize('nine and three quarters')

numerize('platform nine and three quarters')

程序运行结果如下图所示,可以很清楚地发现,英文文字数字被准备转换成了相应的数字。

二. Missingo库,丢失值可视化分析

在现实世界的数据集中发现丢失值是很普遍的。每次处理数据时,缺失值是必须要考虑的问题。但是手工查看每个变量的缺失值是非常麻烦的一件事情。数据分析之前首先要保证数据集的质量。Missingo就是一个可视化丢失值的库。它提供了一个灵活且易于使用的缺失数据可视化和实用程序的小工具集,使您可以快速直观地总结数据集的完整性。

1. Missingo库的安装

这里同样是使用Anaconda,打开Anaconda的终端后,输入如下语句进行Missingo库的安装

pip install missingno

2. Missingo库实例演示

下面的样例数据使用 NYPD Motor Vehicle Collisions Dataset 数据集. 运行下面语句即可获得数据

pip install quilt

quilt install ResidentMario/missingno_data

之后,加载数据到内存,输入以下语句

from quilt.data.ResidentMario import missingno_data

collisions = missingno_data.nyc_collision_factors()

collisions = collisions.replace("nan", np.nan)

在Missingo库中,有几个主要函数以不同方式的可视化展示数据集数据缺失情况。其中,

Matrix是使用最多的函数,能快速直观地看到数据集的完整性情况。输入以下语句,

import missingno as msno

%matplotlib inline

msno.matrix(collisions.sample(250))

程序运行后,矩阵显示的结果如下。图中右边显示的迷你图总结了数据集的总的完整性分布,并标出了完整性最大和最小的点

特别说明,这里也可以通过figsize指定输出图像大小,例如下面语句msno.matrix(collisions.sample(250),figsize=(12,5))

此外,msno.bar函数也是一个非常有用的函数,可以简单地展示无效数据的条形图。

msno.bar(collisions.sample(1000))

程序运行后,显示的数据条形图

三. Faker库,虚拟测试数据生成器

在软件需求、开发、测试过程中,我们可能会遇到需要生成一些测试数据或在分析中使用一些虚拟数据的情况。针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据。但由于现在的业务系统数据多种多样,千变万化。在手动制造数据的过程中,可能需要花费大量精力和工作量,此项工作既繁复又容易出错,而且,部分数据的手造工作无法保障:比如UUID类数据、MD5、SHA加密类数据等。

Faker是一个Python库,开源的GITHUB项目,主要用来创建伪数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的快速生成。

1. Faker库的安装

pip install faker

2. Faker库实例演示

输入下面语句,引用初始化

from faker import Faker

f=Faker(locale='zh_CN')

特别说明,关于初始化参数locale:为生成数据的文化选项,默认为英文(en_US)。如果要生成相对应的中文随机信息(比如:名字,地址,邮编,城市,省份等),需使用zh_CN值。

之后,输入下面语句,将随机生成假的中文名字和地址,非常简单易用。

for i in range(1,100):

print(f.name()+" "+f.address())

运行结果如下:

四. Emot库,表情符号数据分析

在情感数据分析方面,收集和分析有关表情符号的数据可以提供非常有用的信息。而表情符号是一种小到可以插入到表达情感或想法的文本中的图像。它仅由使用键盘字符(如字母、数字和标点符号)组成。

Emot库也是一个开源Github项目,可以帮助我们把表情符号emojis和emoticons转换成单词。它有一个很全面的表情符号与相应单词映射的集合。

  1. Emot库的安装,

输入以下语句即可自动安装

pip install emot

2,Emot库实例演示

输入下面语句

import emot

text = "I love python :-)"

emot.emoji(text)

emot.emoticons(text)

程序运行后,显示结果如下,可以很清楚看到原语句中的人脸被识别转换成了Happy face smiley文字信息。

五. Chartify库,轻松高效创建图表数据

尽管现在有很多创建图表的工具,如Seaborn,Matplotlib,Plotly,Bokeh,Ggplot2,D3和Tableau等,但是仍然需要花费很多时间在创建图表的细节上。为了让操作简单化,作为全球最大的正版流媒体音乐服务平台之一Spotify开源了一个年度最佳Python库Chartify。它可以帮助你以简单明了的方式创建图表,让数据可视化变得轻而易举。与其他工具相比,Chartify库具有用户友好的语法和一致的数据格式。创建漂亮而快速的图表所需的时间更少。

1.Chartify库安装,

输入以下语句即可

pip install chartify

2.Chartify库实例演示

Chartify库安装完成后,输入下面语句,

import pandas as pd

import chartify

# Generate example data

data = chartify.examples.example_data()

到这里,我们已经加载了一些示例数据。下面对实例数据来做一些格式转换:

total_quantity_by_month_and_fruit = (data.groupby(

[data['date'] + pd.offsets.MonthBegin(-1), 'fruit'])['quantity'].sum()

.reset_index().rename(columns={'date': 'month'})

.sort_values('month'))

print(total_quantity_by_month_and_fruit.head())

接着,我们就可以将示例表格数据以图的形式画出来,输入下面语句:

# Plot the data

ch = chartify.Chart(blank_labels=True, x_axis_type='datetime')

ch.set_title("Stacked area")

ch.set_subtitle("Represent changes in distribution.")

ch.plot.area(

data_frame=total_quantity_by_month_and_fruit,

x_column='month',

y_column='quantity',

color_column='fruit',

stacked=True)

ch.show('png')

程序运行后,结果显示如下。原示例数据中的水果种类(Apple, Banana,Grape,Orange,Apple),数量和时间以非常直观清晰的方式展现出来。而整个过程的实现,使用的语句非常简洁。




标签: