处理缺失数据数据处理检测重复行 使用duplicated()函数检测重复的行,返回元素为布尔类型的Series对象,每个元素对应一行,如果该行不是第一次出现,则元素为True df.duplicated() df.duplicated(subset=['a','b','c'])
删除重复行 使用drop_duplicates()函数删除重复的行 df.drop_duplicates() df.drop_duplicates(subset=['a','b','c']) 过滤掉重复项
映射 df3.rename(index={'张三':'Mr Zhang'}) df3.rename({'张三':'Mr Zhang'}) df3.rename(columns={'语文':'Language'}) df3.rename({'数学':'Math'},axis=1)
使用map()函数,由已有的列生成一个新列 df2['政治'] = df2['语文'].map({84:100,11:100,78:100,24:100}) df2['政治'] = df2['语文'].map(lambda x:x*2) def grade(x):
if x<60:
return '不及格'
elif x<80:
return '及格'
else:
return '优秀'
df2['等级'] = df2['语文'].map(grade)
replace()函数:替换元素 map()函数:新建一列, 最重要 rename()函数:替换索引
概述 replace()函数:替换元素 map()函数:新建一列(行也可以) rename()函数:替换索引
异常值检测和过滤 df22.sort_values('数学') df22.sort_values('张三',axis=1) df22.sort_values('语文',ascending=False)
df22.drop('张三') df22.drop('语文',axis=1)
抽样 df22.take(np.random.permutation([0,1,2,3])) permutation打乱顺序,take按照指定顺序排列
np.random.permutation([1,2,3,4,5])
使用.take()函数排序 随机排列:打乱顺序 df22.take([1,0,2,3]) df22.take([1,0,2,3,4],axis=1) 模拟无放回抽样,不会拿到重复数据,依次拿去 模拟有放回抽样,取完一个之后,可能再次抽到相同的数据
数据聚合 概述 df.groupby(by='color') df.groupby(by='color').groups df.groupby(by='color').sum() df.groupby(by='color').mean()
高级数据聚合 transform() 里面不能跟自定义的特征交互函数 它只能对每一列进行计算,所以在groupby()之后,transform()之前是要指定要操作的列 如果与groupby()方法联合使用,需要对值进行去重 df.groupby('color')[['price']].transform(sum)
用索引合并
读取数据pd.read_csv('../data/SMSSpamCollection',sep='\t',header=None) df = pd.read_table('../data/SMSSpamCollection',header=None) 来源:https://www./content-4-878851.html
|