做网站 宁波,关于学校网站建设申请报告,肥城做网站,企业建站什么网站好文章最前#xff1a; 我是Octopus#xff0c;这个名字来源于我的中文名--章鱼#xff1b;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github #xff1b;这博客是记录我学习的点点滴滴#xff0c;如果您对 Python、Java、AI、算法有兴趣#xff0c;可以关注我的… 文章最前 我是Octopus这个名字来源于我的中文名--章鱼我热爱编程、热爱算法、热爱开源。所有源码在我的个人github 这博客是记录我学习的点点滴滴如果您对 Python、Java、AI、算法有兴趣可以关注我的动态一起学习共同进步。 一.缺失值处理 #示例数据
df pd.read_csv(pokemon_data.csv,encodinggbk)
#查看数据前十行
df.head(10) 1.判断缺失值
判断数据表所有数据中的缺失值 df.isnull() 判断数据表某一列的缺失值 df[类型2].isnull() #查看类型2这一列的非缺失值和缺失值的数量分布
df[类型2].isnull().value_counts() 2.删除缺失值
删除掉含有缺失值的所有行 df.dropna() df.dropna(howany) 删除满足行内数据均为NaN这个条件的行 df.dropna(howall) 创建一个4行3列的含有NaN的数据作为演示 df1 pd.DataFrame([[1,5,np.nan],[2,np.nan,np.nan],[2,3,np.nan],[np.nan,np.nan,np.nan]])
df1 01201.05.0NaN12.0NaNNaN22.03.0NaN3NaNNaNNaN
howall能删除掉均为NaN的行 df1.dropna(howall) 01201.05.0NaN12.0NaNNaN22.03.0NaN
删除满足列内数据均为NaN这个条件的列按列删除 df1.dropna(howall,axis1,inplaceTrue)
df1 3.填充缺失值
填充指定值
df1.fillna(value0)
填充函数
df1[1].fillna(df1[1].mean())
向前填充
df1[1].fillna(methodffill)
向后填充
df1[1].fillna(methodbfill) 二.清除空格
创建含有空格的示例数据
dict1 {name:[小红,小明,小张],age:[16,17,18],city:[北京 ,杭州, 上海 ]}
df2 pd.DataFrame(dict1,columns[name,age,city]) 查看含有空格的数据
df2.to_csv(2.csv)
清除空格
df2[city] df2[city].map(str.strip)
查看清除后的数据表
df2.to_csv(df2.csv)
3.转换数据格式
将年龄列数据转换成字符串格式
df2[age] df2[age].astype(str)
df2.dtypes
将年龄列数据转换成浮点数格式
df2[age] df2[age].astype(float)
将年龄列数据转换成整数格式
df2[age] df2[age].astype(int)
4.大小写转换
df2[city] [beijing,hangzhou,shanghai]
df2
转换成大写
df2[city] df2[city].str.upper()
df2
转换成小写
df2[city] df2[city].str.lower()
df2
转换成首字母大写
df2[city] df2[city].str.title()
df2
5.更改列名
通过rename函数修改部分列名或者所有列名并默认返回一个新的数据框若需要在原基础上修改添加参数inplaceTrue即可
df2.rename(columns{name:name2,age:age2})
通过columns属性修改列名这种方式就需要输入所有的列名了并直接在原基础上修改
df2.columns [n,a,c]
6.更改索引与重置索引
df.head(10)
更改索引
#将类型1这列作为索引
df3 df.set_index(类型1)
df3
重置索引
df4 df3.reset_index()
df4
7.重复值处理
df5 pd.DataFrame({c1:[apple]*3 [banana]*3,c2:[1,1,2,3,3,2]})
df5
查看是否有重复值
#适合小数据目测
df5.duplicated(subset[c1,c2],keepfirst)
#当数据量比较大的时候可以看看重复数据和非重复数据的计数分布
df5_duplicated df5.duplicated(subset[c1,c2],keepfirst)
df5_duplicated.value_counts()
保留重复值
df5[df5.duplicated(subset[c1,c2],keepfirst)]
删除重复值
1默认保留第一个出现的重复值删除掉后面的重复值
df5.drop_duplicates(subset[c1,c2],keepfirst)
2保留最后一个重复值删除掉前面的重复值
df5.drop_duplicates(subset[c1,c2],keeplast)
3如果希望直接在原基础上修改添加参数inplaceTrue
df5.drop_duplicates(subset[c1,c2],keeplast,inplaceTrue)
df5
8.替换值
忽略警告的做法
import warnings
warnings.filterwarnings(ignore)
df6 df.head(10)
df6
df6[类型1] df6[类型1].replace(Grass,G)
df6
多个对象替换单个值
df6[类型1] df6[类型1].replace([G,Fire],gf)
df6
用不同的值替换不同的对象
df6[类型1] df6[类型1].replace([gf,Water],[good,W])
df6
参数也可以是字典
df6[类型1] df6[类型1].replace({good:gg,W:ww})
df6