栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas 数据清洗(常用pandas数据清洗操作已备好)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas 数据清洗(常用pandas数据清洗操作已备好)

文章中所总结的pandas数据清洗操作,是以微软数据清洗利器Power Query为依据,将其中涉及的数据清洗操作用pandas来实现。

转置
df1 = df.T
对行进行计数
print(df.count())
print(df.info()) #不仅返回行数
修改特定列的数据类型
df['col'] = pd.to_datetime(df['col']) #修改为日期时间类型
df['col'] = pd.to_numeric(df['col'] #修改为浮点数类型
重命名列

重命名列可以调用df.rename(),参数如下:

df.rename(columns={'col1':'new_col1 ','col2':'new_col2'},inplace=True) #不限于两列
替换值
 #替换空值
 #将整个Dataframe中的空值替换为0:
df.fillna(0,inplace=True)
 #将Dataframe指定列中的空值替换为0:
df['col'].fillna(0,inplace=True)

 #替换特定值(只针对字符串)
 #将指定列中的Y替换成YY
 #只能对指定列运用,否则报错:AttributeError: 'Dataframe' object has no attribute 'str'
f['col'] = f['col'].str.replace('Y','YY')
数据格式
#全部大写
df['col'] = df['col'].str.upper()
#全部小写
df['col'] = df['col'].str.lower()
#首字母大写
df['col'] = df['col'].str.capitalize()
#修整(去首尾空格)
df['col'] = df['col'].str.strip()
基本统计信息
print(df.describe())
数学四则运算
#加
df['col'] = df['col'].add()
#减
df['col'] = df['col'].sub()
#乘
df['col'] = df['col'].mul()
#除
df['col'] = df['col'].div()
保留行
#保留前n行
df.head()
#保留后n行
df.tail()
#保留指定行
df.[m:n] #左闭右开
df.iloc[m,n] #左闭右开
df.loc[m,n] #左闭右闭
删除行
#删除前n行,后n行,间隔行:
df.drop([index_list],inplace=True)
#删除重复行
df.drop_duplicates(inplace=True)
#删除空行
df.dropna(how='any',inplace=True) #一行中任何一列为空值就删除
df.dropna(how='all',inplace=True) #一行中所有列为空值才删除
删除列
df.drop([col_list],inplace=True,axis=1)
合并查询
#df1和df2有公共列名col
df3 = pd.merge(df1,df2,on='col',how=inner) #仅保留df1和df2共有的行
df3 = pd.merge(df1,df2,on='col',how=outer) #保留df1和df2所有的行
df3 = pd.merge(df1,df2,on='col',how=left) #保留df1所有的行
df3 = pd.merge(df1,df2,on='col',how=right) #保留df2所有行

#df1和df2没有公共列名
df3 = pd.merge(df1,df2,left_on='col1',right_on='col2,how=inner) #仅保留df1和df2共有的行
df3 = pd.merge(df1,df2,left_on='col1',right_on='col2',how=outer) #保留df1和df2所有的行
df3 = pd.merge(df1,df2,left_on='col1',right_on='col2',how=left) #保留df1所有的行
df3 = pd.merge(df1,df2,left_on='col1',right_on='col2',how=right) #保留df2所有行
追加查询
#pd.concat()法
df = pd.concat([df_list],ignore_index=True)
df = pd.concat([df_list],ignore_index=False,keys=[keys_list])
#df.append()法
df = df.append([df_list],ignore_index=True) #append没有参数keys
排序
#按值排序
df.sort_values(by=[col_list],inplace=True,ascending=False)
#按索引拍序
df.sort_index()
筛选
#大于、小于、等于、不等于
df.query('col > 10',inplace=True)
df.query('col == [value_list]',inplace=True)
#介于
df.query('col > m and col < n',inplace=True) #and,&,or,|,regular expression etc
添加列
df['new_col'] = df['col1'] + fd['col2'] #其他四则运算

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772933.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号