在学这数据结构这部分内容的时候,我已经深刻体会到Python语法知识的重要性。在后来尝试用Python完成数据分析过程的时候,才更深深体会到啥叫一环扣一口,因为这些枯燥的数据结构的知识是接下来分析实操的基础。
以下分为四部分展开:
Numpy一维数据结构Array
Pandas一维数据结构:Series
Numpy二维数据结构:Array
Pandas二维数据结构: DataFrame
Numpy(numerical Python)一维数据结构:Array(数组)
1)定义一维Numpy数组
2)查询第一个元素
3)切片访问 访问第2、3、4个元素
4)用for循环访问数组中的全部元素
5)用dtype来查询数据类型
import numpy as np
a=np.array([2,3,4,5])
print(a[0])
print(a[1:3])
print(a.dtype)
for i in a:
print(i,end=" ")
Numpy一维数组和列别的区别
1)一维数组具有统计功能
平均值mean()
标准差srd()
2)一维数组可进行向量化计算
向量相加
乘以标量
3)Numpy数组中的元素必须是同一种数据类型,而列表中的元素可以是不同的数据类型
Pandas的一维数据结构:Series
1)定义一维数组
age=pd.Series([20,21,23,25,27,28,30],
index=['a','b','c','d','e','f','g'])
2)获取描述统计信息
print(age.describe())
输出结果:
3)获取一维数组中的元素
age=pd.Series([20,21,23,25,27,28,30],
index=['a','b','c','d','e','f','g'])
print(age.iloc[0])
print(age.loc['g'])
4)一维数组 向量相加
s1=pd.Series([4,5,6.5,8,12], index=['a','b','c','d','e'])
s2=pd.Series([1,2,3,4,5], index=['a','b','c','f','g'])
s3=s1+s2
print(s3)
对于s1+s2相加后有空值,处理方法有两种:
1)删除缺失值 s3.dropna()
2)将缺失值进行填充 s3=s1.add(s2, fill_value=0)
Numpy二维数据结构:Array
二维数据分析(有行也有列)
1)定义二维数组
import numpy as np
a=np.array([
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
])
2)查询
查询数组种的某个元素
a[0,2] a[行的序号,列的序号]
获取某一行的元素 a[行的序号,:]
获取某一列的元素 a[:,列的序号]
3)Numpy数轴参数
数轴参数的名称 asix, 通过指定asix的值来指定按照某一行或者某一列来进行计算
Axis=1 按行计算平均值/标准差等等
Axis=0 按列计算平均值/标准差等等
Pandas二维数据结构: DataFrame
定义字典,并将这些数据转换成DataFrame
1)输出有序的数据框
注意:因为字典是无序的数据结构,所以最终的输出结果与输入顺序不一致
(可以用OrderDict将无序变成有序)
from collections import OrderedDict
salesOrderedDict=OrderedDict(salesDict)
salesDf=pd.DataFrame(salesOrderedDict)
print(salesDf)
2)对定义好的数据框取平均值
(是按照每一列来取数据值)
print(salesDf.mean())
3)查询
iloc属性用于根据位置查询值
1.查询元素
2.获取第一行
3.获取第一列
print(salesDf.iloc[1,1])
print(salesDf.iloc[0,:])
print(salesDf.iloc[:,0])
loc属性用于根据索引(行名和列名)查询值
1.查询元素
2.获取第一行
3.获取第一列
print(salesDf.loc[0,'社保卡号'])
print(salesDf.loc[0,:])
print(salesDf.loc[:,'商品名称'])
1.查询某几列 print(salesDf[['社保卡号','销售数量']])
2.切片功能:指定范围 (例如查询社保卡号到销售数量的列)
4)通过条件判断筛选
1构建查询条件
querySer=salesDf.loc[:,'销售数量']>1
print(querySer)
应用查询条件 (只把符合条件的行显示出来)
querySer=salesDf.loc[:,'销售数量']>1
salesDf.loc[querySer,:]
其他操作:
1)读取Excel数据
import pandas as pd
fileNameStr=r'C:UsersTTXDesktop跟猴子学习人工智能核心技术数据分析(高级)(Python)第3关:数据分析的基本过程朝阳医院2018年销售数据.xlsx'
xl=pd.ExcelFile(fileNameStr)
salesDf=xl.parse('Sheet1')
print(salesDf)
2)打印前5行 salesDf.head(5)
salesDf.head(5)
3)查看列的数据类型 dtype
salesDf.loc[:,'销售数量'].dtype
输出结果:float64
4)有多少行,多少列 shape
salesDf.shape
输出结果:
5)每一列的描述统计信息 用describe
salesDf.describe()