python jupyter-notebook数据分析与可视化笔记

1
2
3
import matplotlib.pyplot as plt  # 导入绘图库
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
1
2
3
data[u'销量'][(data[u'销量'] < 400) | (data[u'销量'] > 5000)] = None  # 过滤异常值,将其变为空值

df[][]根据第二个[]中的真值来决定选择
1
2
(data['销量'].isnull())[0]
返回真值,表示该列第0行空不空,data['销量'].isnull()返回一个series(list)
1
2
3
4
5
6
7
from scipy.interpolate import lagrange  # 导入拉格朗日插值函数
# 自定义列向量插值函数
# s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5
def ployinterp_column(s, n, k=5):
y = s[list(range(n-k, n)) + list(range(n+1, n+1+k))] # 取数
y = y[y.notnull()] # 剔除空值
return lagrange(y.index, list(y))(n) # 插值并返回插值结果

pd.read_excel()

1
pandas.read_excel(io,sheet_name=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None,keep_default_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,convert_float=True,mangle_dupe_cols=True,**kwds)
  1. io: r”path” r可避免转义字符\
  2. sheet_name(str, int, list, None, default 0)
    • str:sheet名
    • int:sheet索引
    • list:可为int、str、int和str的组合
    • None:读取所有sheet
    • 默认第0张
  3. header(int, list of int,None, default 0)指定表头
    • int:1,代表第二行做表头,第一行数据被丢弃
    • list of int:指定多行做表头
    • None:不使用数据源中的数据做表头
    • 默认第0行
  4. names(array-like, default None)自定义表头的名称
    • 传递一个数组
  5. index_col(int, list of int, default None)指定列为索引列
    • int:0,数据中第0列作为索引
    • list of int:指定多列作为索引
    • 默认None,不使用数据源的列作为索引,而是自动生成从0开始
  6. usecols(int, str, list-like, or callable default None)指定读取列
    • int:读取到第n列(0,1,2,…,n)
    • str:“ A:E”或“ A,C,E:F”(exccel中列名)
    • list-like:读取给定列
    • 默认为None,读取所有列
  7. squeeze(bool, default False)默认为False。如果设置squeeze=True则表示如果解析的数据只包含一列,则返回一个Series
  8. dtype(Type name or dict of column -> type, default None)
    • 默认为None,也就是不改变数据类型
    • dtype={0:”float64”,2:str}0列改为float64,2列改为str
  9. engine(str, default None)
    可以接受的参数有“ xlrd”,“ openpyxl”或“ odf”,用于使用第三方的库去解析excel文件。
  10. converters(dict, default None)
    对指定列的数据进行指定函数的处理,传入参数为列名与函数组成的字典。key 可以是列名或者列的序号,values是函数,可以def函数或者直接lambda都行。
    • converters{1:lambda x: "\""+x+"\"",2:lambda x: x-10}对第2列的所有名称加上””,把第三列的所有年龄都减10
  11. true_values(list,default None) false_values(list,default None)将指定的文本转换为True/False,默认为None
    • true_values=["女"],false_values=["男"]将性别中的女转换为True,男转换为False
  12. skiprows(list like)跳过指定的行
    • skiprows=3 跳过前3行
    • skiprows=[1,3,5] 跳过第1,3,5行
    • skiprows=lambda x: x % 2 == 0 跳过偶数行
  13. nrows(int, default None)默认为None,指定需要读取前多少行,通常用于较大的数据文件中。
    • nrows=3 读取前三行
  14. na_values(scalar, str, list-like, or dict, default None)指定某些列的某些值为NaN
    • na_values=’大专’,指定大专为NaN