Python【Pandas核心需掌握总结】

Python【Pandas核心需掌握总结】

三个类型(series,dataframe,index)

1.数据加载

1)【pd.read_csv】

~sep/delimiter 指定分隔符
~encoding=''指定编码
~index_col 列索引
~usercols 使用哪一列
~skiprows跳过哪一行查看数据
~true_values、false_values 将数据变为布尔值进行处理
~iterator、chunksize 迭代器对象
~quotechar 包裹字符串的符号

2)【pd.read_excel】

~openpyxl库或者xlrd xlwt库 
~sheet_name 指定工作表
~header 指定表头

3)【pd.read_sql】

~pysql或者sqlalchemy库
~%pip install pymysql sqlalchemy

# 使用sql引擎对象先导入
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://guest:[email protected]:3306/hrs')
# pd.read_sql_query 
# pd.read_sql 
# pd.read_sql_table 


4)【重要属性:】如何操作单元格

   ·操作行、操作列:loc、iloc(是数据系列对象,series对象)
   ·操作单元格:at、iat
   ·添加列:df['...'] = ... / df.insert(index, '...', ...)
   ·添加行:df.loc[...] = [...] / df.loc[...] = {...}


5)【基础方法】

​ 设置索引:df.set_index()
​ 重置索引:df.reset_index()
​ 索引重命名:df.rename(index={…},colums={…})
​ 删指定行删列:df.drop(index=[…],rows=[…])
​ df.drop(index=[…],colums=[…])
​ # 一般不在原表上进行操作,有返回值,尽量创建接收对象,或者对数据源进行备份
​ 获取相关信息:df1.info()
​ 查看前多少行数据:df1.head()
​ 查看后多少行数据:df1.tail()

补充:【pd.read_pickle、pd.read_hdf5】等

2.数据重塑

```
 ~拼接:pd.concat((df1,df2,df3),ignore_index=True)
 ~合并:pd.merge(df1,df2,on="...",how="...")
       df1.merge(df2,on="...",how="...")
```

3.数据清洗

~ 【缺失值】
·判断空值:df.isna()/df.isnull(),df.notna()/df.notnull()
·删除空值:df.dropna(axis=..)/df.drop(index=..)
·填充空值:df.replace(np.nan...)/df.fillna(..,method='')

~【重复值】
·判断重复:df.duplicated(...)
·删除重复:df.drop_duplicated(..,keep=..)
·统计重复:ser.nunique() / ser.value_counts()

~【异常值】
·判断异常:箱线图判定法、zscore判定法
·删除异常:df.drop(index=[...])
·替换异常:df.replace(old_value,new_value)/ser.repalce(old_value,new_value)

~【预处理】

 ·[字符串:]
     ``ser.str
            lower()/upper()/title()
            isdigit()...endswith()
            split()/strip()/replace()
            extract()
            
 ·[日期和时间:]
     ``pd.to_datetime()
     year/quarter/month/day/weekday/hour/minute
     strfitime()
     ceil()/floor()
   
 ·[分箱(离散化)]
        `` pd.cut() 
        ``pd.qcut()
 ·[映射变换:]
     ser.map(func)/ser.apply(func)
     元素级:df.applymap(func)
     行级或列级不能归约:df.transform(func,axis=...)
     行级或列级可以归约:df.apply(func,axis=...)

4. 数据透视

·[排序和头部值]
    根据索引排序:df.sort_index()
    根据值排序:df.sort_values(by=...,ascending=...)/ser.sort_vlues()
    前N大/小:df.nlargest(n,...)/df.nsmallest(n,...)
                                --->agg({})针对不同列用字典区别对待
    
[分组聚合]
    ·df.groupby(by=...)
    ·df.pivot(index,columns,values) -->df.melt(...)
    ·ser.rolling(window_size)
    
[透视表]根据A统计B
    ·df.pivot_table(index,colums,values,aggfunc,fill_values,margins) #df的方法
    ·pd.pivot_table(df,colums,values,aggfunc) #pd的函数
    交叉表: pd.crosstab()
6.数据洞察 
   —分析方法:
  		 ~对比法
  		 ~拆解法(要素拆解,维度拆解,流程拆解)
  		 ~漏斗法 —— 向前找流量、向后看转化、自身看画像
  		 ~相关分析法——找业务抓手
  		 ~象限法 
  		 ~逻辑树分析法
   — 分析模型
    	~SWOT
    	~PEST模型
    	~RFM、RFA
    	~AIPL模型
    	~LIFT模型

你可能感兴趣的:(python数据分析三大神器,python,pandas,开发语言)