首页 > 编程语言 >python复习

python复习

时间:2024-09-29 22:45:38浏览次数:7  
标签:复习 python data df pd -- 数据 def

  1. 函数可以作为参数传递给其他函数——传递的是计算逻辑而不是数据
    def newFunc(oldFunc):
    oldFunc(a,b)

  2. from time import *
    这个* 收到time中的__all__=[]控制,如果函数不再all中就无法使用,但可以自行import函数进行使用

  3. 对集合的遍历
    s[::-1]就是逆序遍历,可以省略最后的-1,表示正向遍历

  4. __main__的功能
    image

  5. 异常处理
    image

  6. JSON数据与字典互相转换
    中文需要注意
    由字典转为json:json.dump(data,ensure_ascii=False)
    image

由json转为字典:json.loads(data)

  1. 私有成员或变量
    以__开头

  2. 继承父类
    class children(father):
    属性
    方法(self是必须的)

每个类中都有自己的魔法方法,就是python自带的方法

  1. 抽象类和抽象方法
    def 类:
    def 抽象方法(self):
    pass

然后由类去实现这个抽象类

  1. 闭包
    def outer(变量1):

def inner(变量2):
对变量处理
return inner
这种情况可以不用全局变量,防止全局变量的使用和修改

  1. 装饰器
    类似Java的注解

def outer(func):
def inner():
处理
func()
处理
return inner

直接在func上加上
@outer 即可实现AOP

image

  1. 多线程
    threading库
    image

  2. 正则表达式
    import re
    image

二、特征工程

  1. 数据集
    scikit-learn:数据集小,方便学习
    Kaggle:巨量数据,竞赛平台,科学家多
    UCI:覆盖广,数据多

三、数据处理
1.导入数据:读取CSV、Excel及两者的互换
一般是由pandas处理数据:import pandas as pd
pd.read_csv();pd.read_excel()

下面的df是data_framework()

image

两者的互换,在有CSV的方法中加上(encoding=“UTF-8”)
image

读取TXT文件,注意对TXT文件分割符的处理:
image

  1. 对库的认知
    pandas库:对数据进行分析,包括清洗、处理、转换等多种方法
    numpy库: 主要对数组和矩阵进行处理、分析

  2. 缺失值的识别与处理
    识别:

data.isnull().any()--任何一列为空就统计;
data.isnull().any(axis=1)--行
在上面两行后面加上sum()可以统计出以后多少行或列
data.isnull().all()--只有全部列为空才统计;
image

处理:
3.1 删除:
data.dropna()--默认对行进行操作,默认只要一行有nan就删除
其余参数见下图
image

3.2 填充
3.2.1 fillna()
data.fillna(method=“backfill”)--根据前面或后面的数字进行填充
也可以用指定的数字进行填充,在fillna(数字)即可
image

3.2.1 replace(data.nan,指定数字)
image
3.2.1 sklearn的预处理方法,较复杂
image

  1. 异常值的识别与处理
    识别:
    import numpy as np
    outlier = df[df[np.abs(df)>5].any(1)]
    识别在【-5,5】以外的数字1
    image

处理:
使用z_score
for col in df.columns:
df_current_col = df[col]
z_score = df[df.current.col - df.c.col.mean()] / df.c.c.std()
df_zscore=z_score.abs()>2
outlier = df[df_zscore]
#删除异常值
print(df[df_zscore==False])
image

  1. 重复值的识别与处理
    df.duplicate()会让重复的索引为true
    df[df.duplicate()] 会取得重复的值
    image

image

删除重复值:
image

直接在原数据上进行删除:
image

  1. 数据切片

df--数据切片
image

获取列名和索引名:
image

获取多行和行、列
image

索引的获取:iloc,loc的区别
image

根据条件获取某行数据:
取得某列数据;
image

数据连接:
pd.merge()
image

  1. 数据的合并
    pd.contace()可以实现纵向、横线的连接
    纵向连接:类似SQL的union
    image

image

  1. 数据的重塑
    行列的互换
    image

行转列:df.pivot(),不变的是Index,要转的是columns,colums的值是values
image

pd.pivot_table()可以先对数据进行处理
image

列转行:先对源数据进行索引重置
pd.melt()
image

stack()和unstack()也可以实现上面的操作:
如图:可以看出函数的相关作用:
image

unstack()
image

  1. 数据排序
    df.sort_values()
    image

多排序规则:列表相应对应
image

排名:
df.rank()--有意思,同样的排名有的是取平均值,
image

值出现次数的添加
image

  1. pandas导入数据的常见问题
    对分隔符的正则表示
    image

数据中间有换行符和空格--使用applymap()
image

导入的数据没有表头:
自己命名列名
image

转换导入的数据的类型:
image

  1. 数据分组&聚合&加权平均
    groupby()
    image

聚合函数:同时对多列数据进行处理
image

加权平均:
np.average()
image

分组加权平均:
先加权平均,再加上分组
image

  1. 累计求和
    对某一列累计求和;以及排序后累计求和
    image

image

分组累计求和:这是有点难得
image

  1. 分箱、分频
    等距分箱;等频分箱
    等距:pd.cut()
    image

等频:
image

  1. 数据交叉表与透视表
    可以使用pivot_table(),具体操作需要时再看

  2. 数据过滤
    df.where()
    可以多条件过滤
    image

找出一行最大或者最小
score表示数据;Score表示对那列找出最大
image

标签:复习,python,data,df,pd,--,数据,def
From: https://www.cnblogs.com/fromWell888Dare/p/18426703

相关文章