支持付费下载系统的网站模板或建站软件,学做饼干的网站,百度一下就一个,wordpress媒体库注册数据清洗常用方法 一、数据读取与保存二、数据查看三、索引设置与修改四、选择与过滤五、缺失值重复值处理六、异常值处理七、行列增加与删除八、拼接与合并九、统计与排序十、重塑与轴向旋转十一、数据运算十二、数据类型变换十三、分组运算 一、数据读取与保存
pd.read_csv(… 数据清洗常用方法 一、数据读取与保存二、数据查看三、索引设置与修改四、选择与过滤五、缺失值重复值处理六、异常值处理七、行列增加与删除八、拼接与合并九、统计与排序十、重塑与轴向旋转十一、数据运算十二、数据类型变换十三、分组运算 一、数据读取与保存
pd.read_csv()/df.to_csv() 从CSV文件读取数据pd.read_excel()/df.to_excel() 从Excel文件读取数据pd.read_json()/df.to_json()pd.read_html()pd.read_clipboard()数据库读取 连接MySQL数据库的基本语句如下
import pymysql
# 建立数据库连接
conn pymysql.connect(hostlocalhost,userusername,passwordpassword,databasedatabase_name,port 3306
)
# 创建游标对象
cursor conn.cursor()
# 执行SQL查询语句
sql_query SELECT * FROM table_name
cursor.execute(sql_query)
# 获取查询结果
result cursor.fetchall()
# 关闭游标和连接
cursor.close()
conn.close()使用create_engine连接MySQL数据库的基本语句如下
import sqlalchemy
engine sqlalchemy.create_engine(mysqlmysqlconnector://username:passwordlocalhost/database_name)
df pd.read_sql_query(SELECT * FROM table_name, engine) 读取
df.to_sql(,engine,index False,if_exists replace) #保存连接SQL Server数据库的基本语句如下
import pyodbc
# 建立数据库连接
conn pyodbc.connect(DRIVER{SQL Server};SERVERserver_name;DATABASEdatabase_name;UIDusername;PWDpassword
)
# 创建游标对象
cursor conn.cursor()
# 执行SQL查询语句
sql_query SELECT * FROM table_name
cursor.execute(sql_query)
# 获取查询结果
result cursor.fetchall()
# 关闭游标和连接
cursor.close()
conn.close()使用create_engine连接SQL Server数据库的基本语句如下
from sqlalchemy import create_engine
# 建立数据库连接
engine create_engine(mssqlpyodbc://username:passwordserver_name/database_name)
# 执行SQL查询语句
sql_query SELECT * FROM table_name
result engine.execute(sql_query)
# 获取查询结果
result_list result.fetchall()
# 关闭连接
engine.dispose()二、数据查看
df.head() 查看前n行数据默认为前5行df.tail() 查看最后n行数据默认为最后5行df.sample() 随机采样df.shape 形状df.info() 查看数据的基本信息df.describe() 统计描述性信息可查看数值型和类别型df.T 转置df.values 值df.index 索引df.columns 列名df.types 数据类型
三、索引设置与修改
df.set_index() 将某列设置为索引df.reset_index() 恢复默认索引df.reindex() 重新索引df.index []df.columns []df.rename(columns {‘’:‘’},inplace True) 修改某列名字
# 创建一个DataFrame
data {A: [1, 2, 3, 4],B: [5, 6, 7, 8],C: [9, 10, 11, 12]}
df pd.DataFrame(data)# 将列A设置为索引
df.set_index(A, inplaceTrue)
# 恢复默认索引
df.reset_index(inplaceTrue)
# 重新索引
new_index [a, b, c, d]
df_reindexed df.reindex(new_index)
# 修改索引
new_index [w, x, y, z]
df.index new_index
# 修改列名
new_columns [Column1, Column2, Column3]
df.columns new_columns
# 修改列名为A为NewColumn
df.rename(columns{Column1:NewColumn}, inplaceTrue)四、选择与过滤
df[‘column_name’] 选择指定列df[[‘column1’, ‘column2’]] 选择多列df.loc[row_index] 选择指定行df[df[‘column’] 10] 选择column列大于10的行df.loc[‘a’:‘c’] 选择多行显示索引左闭右闭df.loc[‘a’:‘c’,[‘A’:‘C’]] 选择特定行和列df.loc[‘a’:‘c’,‘A’:‘C’]df.iloc[3:6]df.iloc[1:3,4:8] 隐式索引左闭右开df.loc[df[‘A’]0,df.loc[‘a’]2] 选择a行大于2,A列大于0的所有行df.loc[df[‘column’] 10, [‘column1’, ‘column2’]]df[df[‘column’].notnull()] 选择某列非空的所有行
五、缺失值重复值处理
df.isnull()/df.notnull() 缺失值判断df.isnull().sum() 缺失值统计返回一个以 df各列值为nan个数为元素的序列df.isnull().sum().sum() 返回 df所有值为nan的个数和。df.dropna() 删除指定列df.duplicated() 重复值df.dupicated().sum()df.drop_duplicated() 重复值删除 保留第一次出现的行数据删除其他的重复行数据 keep‘first’ 可缺省df.drop_duplicated(keep‘last’) # 保留最后一次出现的行数据删除其他的重复行数据df.drop_duplicated(subset[‘sex’,‘year’],keep‘last’) # 移除以指定列(‘sex’,‘year’)所谓判断重复标准的的行df.replace() 替换df.fillna(0,inplaceFalse) # 将 DataFrame中的所有 NaN填充为 0 inplace缺省时默认 inplaceFalsedf.fillna(0,inplaceTrue) # 就地修改df[0].fillna(df[0].mean()) # 填充第 1列,使用第一列的统计非 NaA的平均值。df[0:2]df[0:2].fillna(‘enene’) # 填充第 1-3列,使用’enene’df2.fillna({0:0,2:‘aa’}) # 给指定的列填充 第一列的填充值为 0第 3列的填充值为 ‘aa’df.loc[0].fillna(df.loc[0].mean(),inplaceTrue) # 填充第 1行,使用第一行的统计非 NaA的平均值。df.loc[0:2]df.loc[0:2].fillna(‘enene’) # 填充第 1-3行,使用’enene’df.dropna(how‘any’,axis0) 删除含有 NaN的整行数据 当 howany’时可以缺省df.dropna(how‘all’,axis0) 删除所有值为 NaN的整行数据df.dropna(how‘any’,axis1) 删除含有 NaN的整列数据 当 howany’时可以缺省df.dropna(how‘all’,axis1) 删除所有值为 NaN的整列数据
六、异常值处理
df.replace(‘’,‘未知’) 将 df中所有的 替换为 “未知”df.replace([‘’,2001],[‘未知’,2002]) 将 df中所有的 替换为 “未知”,将 2001替换为 2002df.replace({‘’:‘未知’,2001:2002}) 将 df中所有的 替换为 “未知”,将 2001替换为 2002
七、行列增加与删除
df[‘c’] [1,1,1] 增加行df.loc[‘c’] [1,1,1] 增加行df[‘column4’] [3,5,7,8] 增加列df.drop([‘one’,‘two’],axis 0)df.pop()df.insert() 插入
八、拼接与合并
df df.append(df1) 纵向拼接pd.concat([df1,df2],axis 1) 纵向拼接pd.concat([df1,df2],axis 0) 横向拼接pd.merge(left,right,on ‘key’) 主键合并df1.join(df2)
九、统计与排序
S.value_counts() 计数S.nlargest()S.nsmallest()S.unique() 唯一值S.nunique() 唯一值数量df.sum()df.mean()df.var()df[‘column’].mean() 计算某列均值df[‘column’].sum() 计算某列总和 max() 最大值 min() 最小值data.count()df.sort_index() 按照索引排序df.sort_values(by‘column’) 按照某列值排序df.sort_values(by‘column’,by‘column’) 按列降序排序
十、重塑与轴向旋转
df.stack() 数据堆叠df.unstack() 数据展开df.pivot_table(values‘value’, index‘index_column’, columns‘columns’) 数据透视表
十一、数据运算
s1s2df1 df2 索引自动对齐s.map() 映射s.apply()df.apply(function)df.applymap()
十二、数据类型变换
s.astype(str) 转换为指定类型pd.to_numeric()pd.to_datetime() 将日期字符串转换为日期类型
十三、分组运算
df.groupby(‘column’).mean() 按列进行分组并计算统计量df.groupby([‘column1’, ‘column2’]).sum() 按多列进行分组并计算统计量pd.groupby().std() #var,min,max,sumdf.groupby().agg([np.mean]) 标准的函数 std,var,min,maxdf.groupby().agg([ppp]) 自定义函数df.groupby().agg([np.mean,ppp]) 多个聚合函数df.pivot_table() 透视表先groupby,再求meanpd.crosstab() 交叉表统计分组频率
详细讲解请看历史文章 Python学习——pandas库的使用之series及DataFrame创建、查看、切片、运算 Python学习——缺失值、重复值处理及替换 Python学习——数据排序及分箱pd.cut\pd.qcut Python学习——数据分组统计、分组运算及透视 Python学习——时间序列 Python学习——字符串序列