导图社区 数据清洗
数据清洗思维导图,包括文件读取、数据表操作、数据统计、数据预处理、数据转换、数据的排序和搜索等内容。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
数据清洗
文件读取
读文件
pd.read_csv("文件名",encoding,dtype,na_values=0,index_col)
快速保存
csv:to_csv('文件名',index=False)
excel:to_excel('文件名',index=False)
数据表操作
查看
head():查看DataFrame对象前n行
tail():查看DataFrame对象后n行
columns:查看变量名称
info:查看索引、数据类型和内存信息
dtpyes:查看数据格式
describe:查看数值型列的汇总统计会对数字进行统计显示总数最大最小差值
索引
df[""]
loc[ 行索引名称或者条件, 列索引名称或者标签]
i loc[ 行索引位置, 列索引位置]
增加
df[""]=data , insert(位置,"列名",data)
删除
del 列
drop(labels,axis,inplace=True) inplace=True操作是否对原数据生效
修改
rename(行,列名称) 修改内容,通过loc赋值
查找
df[""] > " " =>返回值 bod & (且),|(或),between(连续型), isin(离散型数据)
数据整理
横向 增加列 .merge(left ,right ,how="inner" ,lefter= ,right_on)
纵向 增加行 .concat[数据表] ,ignore_index=True),ignore_index=True是否忽略
层次化索引
read_csv(index_col=[])
df.loc[("元组"),列]
数据统计
数据分组运算
groupby(列).sum/mean()[列]
聚合函数使用
groupdy.agg( {"列":[np.sum] })
分组对象和apply函数
groupby.apply(np.sum,axis=0/1) 0列合 1行合
groupby.apply(lambda x: x[0]-x[1],axis=1)=>算两列之间差值
透视图与交叉表
透视:pivot_table( data, index, columns,values, aggfunc, fill_value, margins, margins_name=)#aggfunc聚合函数(统计什么就调用np.方法)#fill_value填充缺失值,填充什么就等于什么#margins是否统计#margins_name名称
交叉表:展示频率 crosstab(index,columns,normalize) Normalize: 数据对数据进行标准化,index表示行索引,columns表示列索引
数据的排序和搜索
排序
sort函数: 从小到大进行排序
argsort函数: 返回的是数据中, 从小到大的索引值
搜索
np.where: 可以自定义返回满足条件的情况
np.extract: 返回满足条件的元素值
数据转换
日期格式数据处理
pd.to_datatime(data,format="%Y%m%d")
时间差:datetime.datetime.now()-data
字符串数据处理
split(" " ,expand=True):返回字符串的单词列表
strip():删除前导和后置空格
replace():替换字符
子主题
高阶函数数据处理
apply (lambda x:表达式,axis=0行/1列)
可以使用astype函数对数据进行转换
可以使用map函数进行数据转换
数据预处理
重复值处理
any(df.dupliats() )=True 有重复值
drop_duplicates(subset=[" "],inplace=True)#subset指定某列有重复值,这一行就算是重复的
查看重复项:df[df.duplicated()]
删除重复项:df.drop_duplicates()删除全部重复
缺失值处理
查看缺失值:df.isnull()
判断数据表中是否有缺失值:any(df.isnull())
缺失比例
每一列的缺失比例:df.apply(lambda x:x.isnull().sum()/len(x))
每一行的缺失比例:df.apply(lambda x:x.isnull().sum()/len(x),axis=1)
缺失值删除:df.dropna()
缺失值填充
按经验来填:fillna()
前向填充:fillna(method="ffill")
后向填充:fillna(method="bfill")
异常值处理
标准差法
上限:平均值+2.5*标准差
下限:平均值-2.5*标准差
箱线图法
上限:Q3+1.5*IQR
下限:Q1-1.5*IQR
IQR=Q3-Q1
用99分位数和1分位数进行替换
p1=df.Price.quantile(0.01)
p99=df.Price.quantile(0.99)
数据离散化
cut(等宽) (data,bins,right,labels)
bins:离散化的数目,或者切分的区间
right:是否包含区间右边的值
qcut(等频)