Pandas数据处理与分析

前言

  • 对于二维平面数据来说,pandas无疑是数据处理和数据分析的好帮手,接下来就细细的演示和讲解一下,一些关于pandas的操作,希望能对你有所帮助。

这里主要利用pandas从六个方面来对数据进行操作:

1 导入数据

自我生成数据

pandas 有两个常用的数据结构:Series 和 DataFrame,可以用来生成你想要的数组型对象。

pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
    
pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

外部加载数据

但是,在一般的数据处理分析中,往往自我生成数据情况较少,更多的是导入数据。pandas提供了一些用于将表格型数据读取为DataFrame对象的函数。
这里导入本次需要的用到的数据(该数据来自天猫爬取的网页数据,有兴趣的可以自己去爬取,这里只是暂做示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_excel("E:/data/tianmao_phone.xlsx")

表1对我们常用的文件格式进行了总结,其中pd.read_csv()pd.read_excel()可能会是你今后用得最多的。
在这里插入图片描述
这些pandas的解析函数参数较为复杂,具体了解可以在pandas官网上自行查阅,或者可以再Jupyter Notebook 中采用help(pd.read_excel)命令查阅。

注:这里使用的都是小规模的数据(500万以下),而在现实生活中的数据有时往往跟为复杂(动辄几个G到TB),pandas在读取的时候往往就会用到chunsize等参数(可以传入大小)分块读取。
但是,其效率也是低下,所以建议大数据还是用一些适合它的的工具(数据库等),没有最好的工具,只有最适合的工具。

2 审阅数据

在成功导入数据以后,需要对数据进行审阅,目的是,了解数据结构、类型、大小等情况。方便理解数据和为后续处理分析打下基础。

1.查看前5行(默认前5行,你也可以在括号里输入你想要的行数):

data.head()

在这里插入图片描述

2.查看倒数5行:

data.tail()

3.查看维度信息:

data.shape

4.查看每一列的数据格式:

data.dtypes

5.查看数据表基本信息(维度、列名称、数据格式、所占空间等):

data.info()

在这里插入图片描述

6.查看某一列具体信息:

#两种处理效果一样
data['月销量']

data.月销量

7.也可以按索引提取单行或多行数值:

#提取第4行
data.iloc[4]

#提取到第4行
data.iloc[0:4]

#提取所有行,0到4列(也可以反过来)
data.iloc[:,0:4]

#提取第0、2、4行,第3、4列
data.iloc[[0,2,4].[3,4]]

注:数据的选取较为灵活,方法也较多,诸如:data["你要选取的列名称"]data.loc[]data.iloc[]data.ix[]等等。具体可以上官网了解一下他们的区别和作用,这里就不再继续详述了。

8.将数据进行排序

#按销量的大小进行排序,只取前8行
data.sort_values(by=['累计评价'],ascending=False).iloc[:8,:]

在这里插入图片描述

#查看类别信息
count_class = pd.value_counts(data['店铺名称'],sort=True).sort_index()
print(count_class)

9.查看基本的统计信息(最大值、最小值、平均值、中位值、四分位值、标准差等):

data.describe()

3 数据预处理

说完对表中的数据进行简单的查看,下面进行对数据进行的最关键操作:数据预处理

(1) 数据集成

由于我的数据较为规整,不需要合并和拼接,这里只是简单介绍一下原理。

1.pandas.merge可根据一个或多个键将不同DataFrame中的行连接起来。SQL或其他关系型数据库的用户对此应该会比较熟悉,因为它实现的就是数据库的join操作。

pandas.merge(left, right, how='inner', on=None, 
left_on=None, right_on=None, left_index=False, right_index=False,
 sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)

该函数主要用于通过一个或多个键将两个数据集的行连接起来,类似于 SQL 中的 JOIN。典型应用场景是,针对同一个主键存在两张包含不同字段的表,现在我们想把他们整合到一张表里。在此典型情况下,结果集的行数并没有增加,列数则为两个元数据的列数和减去连接键的数量。

2.pandas.concat该方法相当于数据库中的全连接(UNION ALL),可以指定按某个轴进行连接,也可以指定连接的方式join(outer,inner 只有这两种)。与数据库不同的是concat不会去重,要达到去重的效果可以使用drop_duplicates方法。

pandas.concat(objs, axis=0, join='outer',
 join_axes=None, ignore_index=False, keys=None,</
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值