pandas是数据结构与数据分析工具
补:NAN not a number 表示一些特殊数值
作用:数据处理时,在实际工程中经常数据的缺失或者不完整,将缺失值设为NAN,
1.读取数据:
df = pd.read_csv(文件路径,delimiter = ‘,’,encoding = ‘utf8’,header=0)
2.写入数据
df.to_csv(路径,columns=[],index=False,header=True)
columns表示列,
index=False表示忽略索引信息,
index =True表示需要同时保存索引信息(输出文件的第一列保存索引值)
3.数据的选取
行的选取: row = df[0:3]选择0-2行
列的选取:cols = df.[[’’,’’]]列的名称
cols.head()用于显示数据框中前五行数据
块的选取: df.ix[0:3,[’’,’’]]选取列表名的0-2行
4.创建新的列并使用其他列赋值:
df[‘金额’] = df[‘单价’]* df[‘数量’]
5.将某列字段作为索引排序
df1 = df.set_index(’’)
df1 =df1.sort_index()
6.查看表的数据信息
df.info
查看表的描述性统计信息:df.describe()
7.数据分组:
group = df[‘lie1’].groupby(df[‘lie2’])
按lie2分组,访问lie1的值
8.数据分割
df1 = df[0:3][[‘lie1’,‘lie2’]]表示提取lie1和lie2中0-2行
9.数据合并
pa.merge(df1,df2)不指定列名,默认选择列名相同的列
pd.merge(df1,df2,on = ‘lie1’)指定列名,选择lie1
外连接表示将两个表合并时,使用所有的列,不存在的补上NaN
pd.merge(df1,df2,how=‘outer’)
内连接表示将两个表连接时,相当于填补具有相同第一列的后续值
pd.merge(df1,df2,how=‘inter’)
左连接表示补充df1中缺少的存在于df2中的列
pd.merge(df1,df2,how=‘left’)
右连接表示补充df2中缺少的存在于df1中的列
pd.merge(df1,df2,how=‘right’)
不涉及补充,左右合并起来
pd.merge(df1,df2,left_index=True,right_index=True)
同df1.join(df2)
10.缺失值处理
产看是否有缺失值:
df.isnull()
False表示没有,True表示有
df.dropna(axis=0)删除行,凡是有NaN的行均删除
使用字符代替缺失值
代码 | 含义 |
---|---|
df.fillna(‘missing’) | 使用前一个数据代替NaN |
df.fillna(method=‘pad’) | 使用后一个数据代替NaN |
df.fillna(method=‘bfill’,limit= ) | limit限制每列可以代替的NaN的数目 |
df.fillna(df.mean()) | 使用平均值代替 |
11.移除重复数据
duplicated()返回一个bool行series,用以判断某行是否为重复行
duplicated().value_counts()用来返回重复的行数
drop_duplicates方法返回一个删除了重复行的DataFrame
matplotlib绘图库
axis轴
import matplotlib as mpl
import matplotlib.pyplot as plt
plt.title(’’)设置标题
plt.plot(x,y)绘制点
plt.xlabel(’’)横坐标的名
plt.ylabel(’’)纵坐标名
plt.show()显示
subplot()在同一张图上绘制不同的东西
建立subplot网格,高为2,宽为1
激活第一个subplot
plt.subplot(2,1,1)
绘制
plt.plot(x,y)
plt.abr()生成条形图
相关参数:
plt.bar(x,y,color,align=‘center’)
matplotlib动态图subplots()与subplot()的不同及其参数
fig,ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,** fig_kw)
nrow和ncol表示将画布分割成几行几列
sharex和sharey表示坐标轴的属性是否相同,可选的参数:True,False,row,col,默认为False表示画布中的四个ax是相互独立的