处理缺失数据
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更加严格,它只匹配字符串的首部