数据分析

  1. 浏览数据,查看列名
  2. 读取文件(内涵类 型转换)

numpy

Np.local(路径,allow_pickle=True)

 

  • pandas的

pd. read_

  • Excel(路径,*)  *header=0 列索引,index_col行索引,

sheet_name=0第几页表,

usecols= (str,[],true Falas)

 

skiprows=[1,2]跳过行skipcols=1跳过列

detype={'列名','类型如下'}

· int8/int16/int32/int64(默认):整型

·float16/float32/float64(默认):浮点型

.str/string:字符串

· bool:布尔

· category:分类

· datetime64[ns]:时间戳(纳秒)

.period[Y/M/D]:时间周期(年/月/日)

·object:python对象混合类型

parse_dates= *

True

[列序号,0,1,2,3,4,5]吧列转化为时间

[['序号',1,2,3]]拼接起来

{‘日期’:[1,2,   3]}

date_parser=lamad x:pd.to_datetime(

x,format='%y年,%m月,%d日'

)

  • csv(类似)乱码注意用encoding=gbk
  • 数据库

from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://root:root123ABC@@10.51.185.125:3306/lmq?charset=utf8')

 

转换列的类型

df.convert_dtypes()  转化不了的可能是源数据有问题

df[列].astype(类型名称) 转化为某种类型

  1. 文件合并,有关系的文件合并
    1. append()上下拼接  方法实现纵向堆叠有一个前提条件,就是两张表的列名完全一致。
    2. concat() 设置axis来实现0左右与1上下
    3. merge()某些相同的列合并在一起
    4. rolling()滚动求和操作
    5. expanding()向下求和
  • 分类groupby
  • 透视表
  • crosstab()
  • 双重索引:
  1. 时间转化为时间戳
  • 时间字符串转化为时间  pd.Timestamp()单个字符
  • 时间字符转化为时间列 pd.to_dateTime
  • 取时间用
  1. data['year'] = data.stop_datetime.dt.year
  2. join()左右拼接 pd.join(pd2)
  3. 数据整理
    1. 按索引排序 sort_index()
      1. DataFrame.sort_values(axis=0,level=None,ascending=True,inplace=False)
        1. level:若不为None,则对指定索引级别的值进行排序
        2. ascending:是都为升序排序,默认为True
        3. inplace:表示是否将排序的结果创建为新的实例,默认为False
        4. 按数据排序 sort_values()
          1. DataFrame.sort_values(by,axis=0,ascending=True,inplace=False,na_position='last')
            1. by:表示参与排序的列
            2. na_position:此参数有两个值,first和last,若为first,则将NaN值放在开头,否则将放在最后。
            3. category类型:分类数据,可以理解成取值有限的,或者是固定数量的可能值。例如,性别,血型。
              1. describe方法除了支持传统数值型数据以外,还能够对category类型的数据进行描述性统计,

统计的4个统计量分别是:

  1. count(非空元素的数目)
  2. unique(类别的数目)
  3. top(数目最多的类别)
  4. freq(数目最多类别的数目)
  5. dt['**'].value_counts() 看一列的不同值的数量

 

 

  1. 数据清洗
    1. 判断缺失值(返回bool)
      1. df.insnull()
      2. df.notnull()
      3. 删除缺失值
        1. dropna()

dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

axis(过滤的行和列)0行1列

how(过滤标准 any 有一个缺失值就删除

all 全是缺失值才删除

thresh(有效数据最小要求  至少有n个才保留

  1. .reset_index(drop=True)
    1. 重新排序
  2. 删除异常值
    1. dorp()
  3. 填充缺失值
    1. fillna()  

fillna(value=None, method=None, axis=None, inplace=False,limit=None, downcast=None, **kwargs)

  1. value 替换缺失值的元素
  2. method 填充方式    
    1. 取值为backfill或bfill时,表示使用下一个非缺失值来填补;
    2. 取值为pad或ffill时,表示使用上一个非缺失值来填补。
  3. limit  可以连续填充的最大数量,超过则不进行填补,默认None。

 

  1. 写入
  2. 画图
    1. Matplotlib

*补充 plt.rcParams['font.family']='SimHei' 正常显示中文

plt.rcParams['axes.unicode_minus']=False符号正常显示

*或者plt.title('sin曲线',fontproperties='SimHei',fontsize=20)

  1. 第一步 创建画布:plt.figure
    1. plt.figure语法: plt.figure(num=None,figsize=None,dpi=None,facecolor=None,edgecolor=None, frameon=True)
      1. num:图像编号或名称,数字为编号 ,字符串为名称
      2. figsize:指定figure的宽和高,单位为英寸;
      3. dpi:参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80,1英寸等于2.5cm
      4. facecolor:背景颜色
      5. edgecolor:边框颜色
      6. frameon:是否显示边框

 

  1. 第二步 创建子图:plt.subplot
    1. plt.subplot(nrows,ncols,plot_number)  

#行  #列  #当前子图区

  1. 第四步 美化图形:plt.title、plt.xlabel、plt.ylabel、plt.legend、color、lines.linewidth、lines.linestyle、lines.marker、lines.markersize……
  2. 第五步 保存图形:plt.savefig
    1. plt.savefig('路径\例6')
  3. 第六步 显示图形:plt.show

 

 

 

 

  1. 第三步 制作图形:plt.plot、plt.barh、plt.hist、plt.pie、plt.scatter、plt.boxplot(箱线图)……
    1. plt.plot语法: plt.plot(x, y, format_string, **kwargs)
      1. x: X轴数据,列表或数组
      2. y: Y轴数据,列表或数组
      3. format_string:控制曲线的格式字符串(颜色字符、风格字符、标记字符组成)
      4. **kwargs:第二组或更多plt.plot(x, y, format_string)
      5. plt.scatter语法: plt.scatter (x, y, s, c, marker, alpha )
        1. x,y 表示xy轴对应的数据
        2. s 表示点的大小
        3. c 表示点的颜色
        4. marker 表示点的形状
        5. alpha 表示点的透明度
        6. plt.pie(x,explode=None,labels=None,autopct=None,startangle=None)
          1. x: 饼块的各个数据
          2. explode: 饼块离中心的距离(裂开autopct='%1.1f%%')
          3. labels: 饼块的标签
          4. autopct: 饼块中百分比数值的设置
          5. shadow: 饼图的阴影显示
          6. startangle: 起始绘图的角度

 

 

 

posted @ 2023-03-20 21:10  吾执青剑向天涯  阅读(44)  评论(0编辑  收藏  举报