python-pandas

一、创建series

1.头文件

import pandas as pd
import numpy as np

2.创建series、自定义索引

t1=pd.Series(np.arange(10))

t2=pd.Series([1,23,2,2,1],index=list("a,b,c,d,e")) #index索引
print(t1)

在这里插入图片描述

3.字典创建series

a={string.ascii_uppercase[i]: i for i in range(10)}#字典推导式创建一个字典
t5={"age":"30","name":"yang","job":"teacher"}

t4=pd.Series(a,index=list(string.ascii_uppercase[5:15]),dtype=float) #index索引 dtype数字类型
t6=pd.Series(t5)

print(a)#字典
t3=pd.Series(a)
print(t3)
print(t4)

print(t5)
print(t6)

在这里插入图片描述

4.series的切片和索引

t6.index()

t5={"age":"30","name":"yang","job":"teacher"}
t6=pd.Series(t5)
print(t6)
print(t6.index)
print(t6[1])

在这里插入图片描述
t6.values

print(t6.values)  #numpy中的数组类型
print(type(t6.values))

在这里插入图片描述

series对象本质上由两个数组构成:
一个数组构成对象的键(index,索引),一个数组构成对象的值(values),键->值

二、DateFrame和Series的关系

Series是一维的
DateFrame是二维的,DateFrame是Series的容器

对比:
1.Series

pd.Series(np.arange(12))

在这里插入图片描述
2.DateFrame:

t=pd.DateFrame(np.arange(12)).reshape(3,4)
print(t)

在这里插入图片描述
DateFrame对象既有行索引又有列索引
行索引:横向索引,叫index,0轴,axis=0
列索引:纵向索引:叫columns,1轴,axis=1

reindex

三、DateFrame属性

1.DateFrame的基础属性

代码性质
t.shape()行数,列数
t.dtype()列数据类型
t.ndim数据维度
t.index()行索引
t.columns()列索引
t.reindex()根据新索引进行重排
t.values()对象值,二维ndarry数组
t.drop()删除了指定值
t.loc()轴标签索引
t.iloc()整数索引

index的方法和属性:
在这里插入图片描述
reindex函数的参数:
在这里插入图片描述

2.DateFrame的整体情况查询

  1. 显示头几行:默认五行
    print(t.head())
  2. 显示最后几行:默认五行
    print(t.tail())
  3. 显示指定的行数列数:
    t[ : ] #方括号写数组,表示取行,对行进行操作
    #方括号写字符串,表示的去列索引,对列进行操作
  4. 展示相关信息:行数,列数,列索引,列非空值个数,列类型,内存占用
    print(info())
  5. 快速综合统计结果:计数,均值,标准差,最大值,四分位数,最小值
    print(describe())

四、padas读取外部数据

导入相关数据:
t.read_csv("./")
DateFrame中按照某一列排序的方法:
t.sort_values(by=" (要排序的名称) “,ascending=True/False) #True代表升序,False代表降序
DateFrame按照行列取数据:
t.loc[” “,” "] #逗号前,逗号后.

  1. 单独取某一行或者某一列,,如:[“A”,:]取A行,[:,“Y”]取Y列
  2. 取多行或者多列:t.loc[[“A”,“B”],:],直接取很多行:t.loc[[“A”:“D”,[“a”,“b”]]],取A到D行,取a到b列
    取AB两行,t.loc[:,[“a”,“b”]]取ab两列
  3. 通过位置数取:t.iloc[1,2] 取一行二列 (取法规则同上)
    在这里插入图片描述

五、布尔索引

取次数在某个范围内的结果:
print(t[t[“a”]>10])
print(t[(t[“a”]>10)&(t[“b”]<20)]) #&为且,|为或(与C语言稍有差别)

六、缺失数据索引

1.判断数据是否为NAN:
pd.isnull() #判断缺失数据 数据为NAN的地方显示TRUE,有数据的地方为FALSE
pd.notnull() #数据为NAN的地方显示FALSE,有数据的地方为TRUE
2.处理方法:
(1)删除NaN所在的行列:
t.dropna(axis= ,how=“ ”) #how指在什么情况下删除NaN,any代表在有NaN存在,这一行就删除,all代表只有这一行全为NaN才删除这一行
(2)填充数据:
t.fillna(0) #将NaN部分填充为0
t.fillna(t.mean()) #将NaN部分填充为该部分均值(t.mean()为t的均值)
3.处理为0的数据:
t[t==0]=np.nan

七、pandas常用统计方法

求人数:
print(len(set(t[“diretor”].tolist())))
print(len(t[“diretor”].unique())) #pandas中的方法

八、算术运算

pandas最重要的一个功能是,它可以对不同索引的对象进行算术运算。
例子:

s1=pd.Series([7.2,-2.5,3.4,1.5],index=['a','c','d','e'])
s2=pd.Series([-2.1, 3.6, -1.5, 4, 3.1],index=['a', 'c', 'e', 'f', 'g'])
print(s1)
print(s2)
print(s1+s2)

在这里插入图片描述
自动的数据对齐操作在不重叠的索引处引入了NA值。缺失值会在算术运算过程中传播。

Series和DataFrame的算术方法。它们每个都有一个副本,以字母r开头,它会翻转参数。因此这两个语句是等价的:
在这里插入图片描述

九、排序和排名

  1. 根据条件对数据集排序。
    要对行或列索引进行排序(按字典顺序),可使用sort_index方法,它将返回一个已排序的新对象:
    t.sort_index()
    对于DataFrame,则可以根据任意一个轴上的索引进行排序:
    t.sort_index(axis= )
    数据默认是按升序排序的,但也可以降序:
    ascending=False
    当排序一个DataFrame时,你可能希望根据一个或多个列中的值进行排序。将一个或多个列的名字传递给sort_values的by选项即可达到该目的:
  t = pd.DataFrame({'b': [4, 7, -3, 2], 'a': [0, 1, 0, 1]})
t.sort_values(by='b')
  1. 若要按值对Series进行排序,可使用其sort_values方法,在排序时,任何缺失值默认都会被放到Series的末尾。
  2. Series和DataFrame的rank方法:
    默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的,也可以根据值在原数据中出现的顺序给出排名:t.rank(menthod=‘first’)

十、描述和汇总统计

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值