利用python进行数据分析-数据清洗和准备

处理缺失数据

pandas使用浮点值NaN(Not a Number)表示缺失数据。

检查是否有缺失数据 string_data.isnull()

填充缺失数据 string_data.fillna('0',inplace = True)

填充缺失数据 对不同的列填充不同的值df.fillna({1:0.5,2:0})

滤除缺失数据 data.dropna()

只丢弃全为NA的那些行 data.dropna(how='all')

检查是否有重复项 data.duplicated()

去除重复项 data.drop_duplicates()

替换值 利用replace来产生一个新的Series data.replace(-999,np.nan)

重命名轴索引

transform=lambdax:x[:4].upper()

data.index.map(transform)

如果想要创建数据集的转换版(而不是修改原始数据data.rename(index=str.title,columns=str.upper)

计算指标/哑变量

常用于统计建模或机器学习的转换方式是:将分类变量(categorical variable)转换为“哑变量”或“指标矩阵”。

pd.get_dummies(df['key'])

字符串操作

拆分字符串 val.split(',')

去除空白符 x.strip()

正则表达式

正则表达式提供了一种灵活的在文本中搜索或匹配(通常比前者复杂)字符串模式的方式。正则表达式,常称作regex,是根据正则表达式语言编写的字符串。Python内置的re模块负责对字符串应用正则表达式。我将通过一些例子说明其使用方法。

re模块的函数可以分为三个大类:模式匹配、替换以及拆分。当然,它们之间是相辅相成的。一个regex描述了需要在文本中定位的一个模式,它可以用于许多目的。我们先来看一个简单的例子:假设我想要拆分一个字符串,分隔符为数量不定的一组空白符(制表符、空格、换行符等)。描述一个或多个空白符的regex是\s+:

import re

text="foo bar\t baz \tqux"

re.split('\s+',text)

['foo','bar','baz','qux']

如果打算对许多字符串应用同一条正则表达式,强烈建议通过re.compile创建regex对象:

regex=re.compile('\s+')

regex.split(text)

findall返回的是字符串中所有的匹配项,search则只返回第一个匹配项。match更加严格,它只匹配字符串的首部

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容