numpy列相加_Python数据分析的基础-了解Numpy+Pandas数据结构

在学这数据结构这部分内容的时候,我已经深刻体会到Python语法知识的重要性。在后来尝试用Python完成数据分析过程的时候,才更深深体会到啥叫一环扣一口,因为这些枯燥的数据结构的知识是接下来分析实操的基础。

以下分为四部分展开:

Numpy一维数据结构Array

Pandas一维数据结构:Series

Numpy二维数据结构:Array

Pandas二维数据结构: DataFrame


Numpy(numerical Python)一维数据结构:Array(数组)

e1fda05c459e9525984cfb3e778ec7ab.png

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=" ")

23cd0a44c29c45547c425c8150839fc5.png

Numpy一维数组和列别的区别

1)一维数组具有统计功能

平均值mean()

标准差srd()

2)一维数组可进行向量化计算

向量相加

乘以标量

d0a8ad69390e69222147df450a862add.png

3)Numpy数组中的元素必须是同一种数据类型,而列表中的元素可以是不同的数据类型

Pandas的一维数据结构:Series

c1aa47e24794127ba9cf777c779f9933.png

1)定义一维数组

age=pd.Series([20,21,23,25,27,28,30],
             index=['a','b','c','d','e','f','g'])

2)获取描述统计信息

print(age.describe())

输出结果:

8546642d32fb04a96c1f19746c016790.png

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'])

ebf3dcb48f91b16ad37bcc939dc69a44.png

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)

190eb5064807b8d5546b0fee8d58a7f5.png

对于s1+s2相加后有空值,处理方法有两种:

1)删除缺失值 s3.dropna()

f62b53d248eef4ae973a6ab2e81a149a.png

2)将缺失值进行填充 s3=s1.add(s2, fill_value=0)

75871a942a2f1cf5b93f377a9a7cb1ae.png

Numpy二维数据结构:Array

二维数据分析(有行也有列)

829ce28ba2d96b2d8b7f069950ba49d0.png

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[:,列的序号]

4c544370913468dabba148d39e24da5d.png

3)Numpy数轴参数

数轴参数的名称 asix, 通过指定asix的值来指定按照某一行或者某一列来进行计算

Axis=1 按行计算平均值/标准差等等

Axis=0 按列计算平均值/标准差等等

ae6987801d0256296206a8a61c70c7fc.png

Pandas二维数据结构: DataFrame

89cd7dde6badc02c4914b810d75fbac0.png

定义字典,并将这些数据转换成DataFrame

702bf8496daed691e1ef1750ac8cf5c1.png

1)输出有序的数据框

注意:因为字典是无序的数据结构,所以最终的输出结果与输入顺序不一致

(可以用OrderDict将无序变成有序)

c6729598c56318d229a21bd4ff04ffed.png
from collections import OrderedDict
salesOrderedDict=OrderedDict(salesDict)
salesDf=pd.DataFrame(salesOrderedDict)
print(salesDf)

5687bb25768193369ddbc1e87a3156e5.png

2)对定义好的数据框取平均值

(是按照每一列来取数据值)

print(salesDf.mean())

9e14fcd1d83e53cebb42b9bb10f8f168.png

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)

81f6bc37b163e636f32e8c397fd862d1.png

应用查询条件 (只把符合条件的行显示出来)

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

b698f5382eb8da97726c718948ca016e.png

其他操作:

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

输出结果:

4d1f39b4f5f2bcdb200f8c0dd84310ac.png

5)每一列的描述统计信息 用describe

salesDf.describe()

2405ea41f07113165d8c621d7cba4b44.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值