银川网站建设哪家便宜,网页制作网站建设,网站平台管理,wordpress外网ip访问不了和Numpy最大的不同#xff0c;Pandas的数据有对应的index。一、Series数组Series 是带有标签的一维数组#xff0c;可以保存任何数据类型#xff08;整数#xff0c;字符串#xff0c;浮点数#xff0c;Python对象等#xff09;#xff0c;轴标签统称为索引创建Series数…和Numpy最大的不同Pandas的数据有对应的index。一、Series数组 Series 是带有标签的一维数组可以保存任何数据类型整数字符串浮点数Python对象等轴标签统称为索引创建Series数组# 创建 Series 数据类型有三种方法
#1. 从列表创建 Series
arr  [0, 1, 2, 3, 4]
s1  pd.Series(arr) # 如果不指定索引则默认从 0 开始
print(s1)输出结果
0    0
1    1
2    2
3    3
4    4
dtype: int64————————————————————————————————————————————————
#2. 从加入索引创建 Series
index  [a , b , c , d , e]
n[1,2,3,4,5]
s2  pd.Series(n, indexindex)
print(s2)输出结果
a    1
b    2
c    3
d    4
e    5
dtype: int64——————————————————————————————————————————————————
#3.从字典创建 Series
d{a:1, b:2, c:3, d:4, e:5}
s3pd.Series(d)
print(s3)输出结果
a    1
b    2
c    3
d    4
e    5
dtype: int64查看Series的数据数据类型 values,indexdtype查看Series的描述性信息 describe()索引操作index  [a , b , c , d , e]
n[1,2,3,4,5]
s2  pd.Series(n, indexindex)输出
a    1
b    2
c    3
d    4
e    5
dtype: int64——————————————————————————————————————————————————
# 1、位置下标类似序列
print(s[0])
print(s[3]输出
1
4——————————————————————————————————————————————————
# 2、标签索引方法类似下标索引用[]表示内写上index注意index是字符串。
print(s[a])
print(s[[b,e]])  #如果需要选择多个标签的值用[[]]来表示相当于[]中包含一个列表输出结果
1b    2
e    5——————————————————————————————————————————————————
# 3、切片索引
print(s[1:3])
print(s[a:c])输出结果
b    2
c    3
dtype: int64a    1
b    2
c    3
dtype: int64——————————————————————————————————————————————————
#4、布尔型索引
index  [a , b , c , d , e]
n[20,2,13,None,7]
s  pd.Series(n, indexindex)
print(s)输出结果
a    20.0
b     2.0
c    13.0
d     NaN
e     7.0
dtype: float64----------------------
bls  s10
print(bls)
print(s[s10])
# 数组做判断之后返回的是一个由布尔值组成的新的数组
# 以判断条件作为索引只输出True部分数值输出结果
a     True
b    False
c     True
d    False
e    False
dtype: boola    20.0
c    13.0
dtype: float64----------------------
bls  s.notnull()
print(bls)
print(s[bls])
# .isnull() / .notnull() 判断是否为空值,返回的也是一个由布尔值组成的新的数组(None代表空值NaN代表有问题的数值两个都会识别为空值)输出结果
a     True
b     True
c     True
d    False
e     True
dtype: boola    20.0
b     2.0
c    13.0
e     7.0
dtype: float64Series的基本操作1# 数据查看 .head() / .tail() 查看前5行数据和后5行数据二、Dataframe数组二维数组Dataframe是一个表格型的数据结构包含一组有序的列其列的值类型可以是数值、字符串、布尔值等。创建DataFrame数组# Dataframe 数据结构
# Dataframe是一个表格型的数据结构“带有标签的二维数组”。
# Dataframe带有index行标签和columns列标签#导入pandas包
import pandas as pd#第1步定义一个字典映射列名与对应列的值
salesDict{购药时间:[2018-01-01 星期五,2018-01-02 星期六,2018-01-06 星期三],社保卡号:[001616528,001616528,0012602828],商品编码:[236701,236701,236701],商品名称:[强力VC银翘片,清热解毒口服液,感康],销售数量:[6,1,2],应收金额:[82.8,28,16.8],实收金额:[69,24.64,15]
}#导入有序字典
from collections import OrderedDict
#定义一个有序字典
salesOrderDictOrderedDict(salesDict)#定义数据框传入字典列名
salesDf  pd.DataFrame(salesOrderDict)
print(salesDf) 结果输出查看行列标签print(salesDf.index)   #查看DataFrame的行标签
print(salesDf.columns)   #查看DataFrame的列标签输出结果
RangeIndex(start0, stop3, step1)
Index([购药时间, 社保卡号, 商品编码, 商品名称, 销售数量, 应收金额, 实收金额], dtypeobject)查看每一列数据的类型查看描述性信息数据查询
loc属性用于根据索引index获取1 查询某一行的元素 2查询某行特定列的元素
iloc属性用于根据位置获取值,索引值从0开始1查询某一行的数据 2查询某行特定列的元素【loc和iloc的区别】从以上的案列中有点难理解这两种取值的函数有什么不同下面换个例子详细说明# loc 和 iloc 的区别
#1. 利用loc、iloc提取行数据import numpy as np
import pandas as pd
#创建一个Dataframe
datapd.DataFrame(np.arange(16).reshape(4,4),indexlist(abcd),columnslist(ABCD))In[1]: data
Out[1]: A   B   C   D
a   0    1    2   3
b   4    5    6   7
c   8    9   10  11
d  12   13   14  15#取索引为a的行
In[2]: data.loc[a]   # loc根据index值获取
Out[2]:
A    0
B    1
C    2
D    3In[3]: data.iloc[0]   #iloc根据下位置下标获取
Out[3]:
A    0
B    1
C    2
D    3
#取第一行数据索引为a的行就是第一行所以结果相同# 2. 利用loc、iloc提取列数据In[4]:data.loc[:,[A]]    #取A列所有行多取几列格式为 data.loc[:,[A,B]]
Out[4]: A
a   0
b   4
c   8
d  12In[5]:data.iloc[:,[0]]    #取第0列所有行多取几列格式为 data.iloc[:,[0,1]]
Out[5]: A
a   0
b   4
c   8
d  12# 3.利用loc、iloc提取指定行、指定列数据In[6]:data.loc[[a,b],[A,B]]   #提取index为a,b,列名为A,B中的数据
Out[6]: A  B
a  0  1
b  4  5In[7]:data.iloc[[0,1],[0,1]]       #提取第0、1行第0、1列中的数据
Out[7]: A  B
a  0  1
b  4  5总结涉及到具体行或列的名字用loc只看位置用iloc
通过切片功能获取元素这个方法也很常用指定列名获取切片索引获取某个范围内的信息
复杂数据框查询数据通过条件判断筛选
新增列删除行 / 列 del / drop() # del 语句删除 ——删除列# drop #默认删除行inplaceFalse → 删除后生成新的数据不改变原数据# drop()改变参数axis  1 也可以删除列inplaceTrue原数据会被改变排序# 排序1 - 按值排序 .sort_values,参数 ascending  True →升序反之降序
同样适用于Series# 排序2 - 索引排序 .sort_index
# 按照index排序
# 默认 ascendingTrue (升序), inplaceFalse不修改原数据返回新的数据读取外部文件很多时候需要导入外部的excelcsv图片等格式的文件进行数据处理关于这一点最重要的是主要外部文件和本身python工程文件的相对位置位置不对python就不能正确找到。#读取Ecxcel数据
fileNameStr./朝阳医院2018年销售数据.xlsx
xls  pd.ExcelFile(fileNameStr)
salesDf  xls.parse(Sheet1)数值计算和统计方法求均值 .mean() 按照列进行计算只统计数字列可以通过索引单独统计一列2. 统计数量 .count() →统计非Na值的数量按照列进行计算可以通过索引单独统计一列3. 其他同理求和 df.sum()求最大最小值 df.min() / df.max()求中位数 df.median()求标准差方差: df.std() / df.var()去重 .duplicated()#  Series 和 Dataframe都可以用这个函数#1、Series
#导包
import pandas as pds  pd.Series([1,1,1,1,2,2,2,3,4,5,5,5,5])
print(s.duplicated())
print(s[s.duplicated()  False])
# 判断是否重复
# 通过布尔判断得到不重复的值输出结果
0     False
1      True
2      True
3      True
4     False
5      True
6      True
7     False
8     False
9     False
10     True
11     True
12     True
dtype: bool0    1
4    2
7    3
8    4
9    5
dtype: int64—————————————————————————————————————————————————
s  pd.Series([1,1,1,1,2,2,2,3,4,5,5,5,5])
s_re  s.drop_duplicates()
print(s)
print(s_re)
# drop.duplicates移除重复
# inplace参数是否替换原值默认False不替换。输出结果
0     1
1     1
2     1
3     1
4     2
5     2
6     2
7     3
8     4
9     5
10    5
11    5
12    5
dtype: int640    1
4    2
7    3
8    4
9    5
dtype: int64——————————————————————————————————————————————————
df  pd.DataFrame({key1:[a,a,3,4,5],key2:[a,a,b,b,c]})
print(df.duplicated())
print(df[key2].duplicated())
# Dataframe中使用duplicated输出结果key1 key2
0    a    a
1    a    a
2    3    b
3    4    b
4    5    c
0    False
1     True
2    False
3    False
4    False
dtype: bool
0    False
1     True
2    False
3     True
4    False
Name: key2, dtype: bool
#然后再利用布尔型索引方式去除重复值即可。数据分析中pandas可能用到的知识点汇总至此在学习的过程中会不断补充... ...