常用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'] #其他四则运算
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgekkek
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01