python数据分析基础 阮敬_Python数据分析基础

Numpy 一维数组

创建一维数组

a = np.array([1,2,3,4])

使用索引查询元素

IN : a[0]

OUT : 1

切片查询(:)

IN :a[0:1]

OUT : array([1])

IN :a[1:3]

OUT : array([2,3,4])

IN :a[-1:]

OUT : array([4])

数据类型(dtype)

IN : a.dtype

OUT : dtype('int32')

计算平均值(mean)

IN : a.mean()

OUT : 2.5

计算标准差(std)

IN : a.std()

OUT : 1.118033988749895

向量化计算(向量与标量的计算)

IN : b = a * 4

IN : b

OUT : array([ 4, 8, 12, 16])

Pandas 一维数据结构

创建一维数据结构(Series,使用index增加索引)

IN : camera_s = pd.Series([2500,3000,500,1000,1500],

index = ['FM2','F3','FTN','FA','F2'])

IN : camera_s

OUT :

FM2 2500

F3 3000

FTN 500

FA 1000

F2 1500

dtype: int64

描述性统计(describe)

IN : camera_s.describe()

OUT :

count 5.000000

mean 1700.000000

std 1036.822068

min 500.000000

25% 1000.000000

50% 1500.000000

75% 2500.000000

max 3000.000000

dtype: float64

根据索引获取值(iloc根据位置索引 、 loc根据关键字索引)

IN : camera_s.iloc[1]

OUT : 3000

IN : camera_s.loc['F3']

OUT : 3000

向量运算

IN : c1 = pd.Series([1,2,3,4],index = ['a','b','c','d'])

IN : c2 = pd.Series([11,22,33,44],index = ['a','b','e','f'])

IN : c3 = c1 + c2

IN : c3

OUT:

a 12.0

b 24.0

c NaN

d NaN

e NaN

f NaN

dtype: float64

出现NaN ,就是空值,是因为部分索引只在一个数据结构中出现,

这时候我们有两种方法处理空值,

1>删除空值(dropna())

IN : c3.dropna()

OUT :

a 12.0

b 24.0

dtype: float64

2>将空值替换为想要的值

IN : c3 = c1.add(c2,fill_value = 0)

IN : c3

OUT :

a 12.0

b 24.0

c 3.0

d 4.0

e 33.0

f 44.0

dtype: float64

Numpy二维数组

创建numpy二维数组

a = np.array([[1,2,3,4],

[11,22,33,44],

[111,222,333,444]])

查询元素(a[行号,列号])

IN : a[0,:]

OUT : array([1, 2, 3, 4])

IN : a[:,0]

OUT : array([ 1, 11, 111])

计算平均值(mean())

IN : #如果没有指定数轴参数,会计算整个数组的平均值

IN : a.mean()

OUT : 102.5

IN : #按轴计算:axis=1计算每一行

IN : a.mean(axis = 1)

OUT : array([ 2.5, 27.5, 277.5])

Pandas二维数组:数据框(DataFrame)

适合创建表格数据

IN :

import pandas as pd

#第1步:定义一个字典,映射列名与对应列的值

sales_dict = {

'购买时间':['2017-10-7 星期六','2018-07-22 星期三','2018-05-06 星期三'],

'相机编号':['001616528','001616528','0012602828'],

'商品编码':[236701,236701,236701],

'商品名称':['尼康FM2','尼康F3','尼康玛特FTN'],

'销售数量':[6,1,2],

'应收金额':[82.8,28,16.8],

'实收金额':[69,24.64,15]

}

#导入有序字典

from collections import OrderedDict

#定义一个有序字典

sales_orderdict = OrderedDict(sales_dict)

#定义数据框:传入字典,列名

salesDF = pd.DataFrame(sales_orderdict)

salesDF

计算平均值(mean())

IN : salesDF.mean()

OUT :

商品编码 236701.000000

销售数量 3.000000

应收金额 42.533333

实收金额 36.213333

dtype: float64

通过索引序号查询元素(iloc)

IN :

'''

iloc属性用于根据位置获取值

'''

#查询第1行第2列的元素

salesDF.iloc[0,3]

OUT :

'尼康FM2'

#获取第1行,:代表所有列

salesDF.iloc[0,:]

OUT :

购买时间 2017-10-7 星期六

相机编号 001616528

商品编码 236701

商品名称 尼康FM2

销售数量 6

应收金额 82.8

实收金额 69

Name: 0, dtype: object

IN :

#获取第1列,:代表所有行

salesDF.iloc[:,3]

OUT :

0 尼康FM2

1 尼康F3

2 尼康玛特FTN

Name: 商品名称, dtype: object

通过索引值查询元素(loc)

IN :

'''

loc属性用于根据索引获取值

'''

#查询第1行"商品名称"列的元素

salesDF.loc[0,'商品名称']

OUT :

'尼康FM2'

IN :

#获取第1行

salesDF.loc[0,:]

OUT :

购买时间 2017-10-7 星期六

相机编号 001616528

商品编码 236701

商品名称 尼康FM2

销售数量 6

应收金额 82.8

实收金额 69

Name: 0, dtype: object

IN :

#获取“商品名称”这一列

#salesDf.loc[:,'商品名称']

#简单方法:获取“商品名称”这一列

salesDF['商品名称']

OUT :

0 尼康FM2

1 尼康F3

2 尼康玛特FTN

Name: 商品名称, dtype: object

查询多列及切片

# 通过列表查询某几列的数据(好像得按顺序输入,不然会出错)

IN : salesDF[['商品名称','销售数量']]

OUT :

IN :

#通过切片功能,获取指定范围的列

salesDF.loc[:,'相机编号':'销售数量']

OUT :

通过条件判断筛选

IN :

#通过条件判断筛选

#第1步:构建查询条件

querySer = salesDF.loc[:,'销售数量']>1

# 调用查询

salesDF.loc[querySer,:]

读取Excel数据

#读取Ecxcel数据

fileNameStr='./朝阳医院2018年销售数据.xlsx'

xls = pd.ExcelFile(fileNameStr)

salesDf = xls.parse('Sheet1')

操作

#打印出前3行,以确保数据运行正常

salesDf.head(5)

#有多少行,多少列

salesDf.shape

#查看某一列的数据类型

salesDf.loc[:,'销售数量'].dtype

#查看每一列的统计数值

salesDf.describe()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值