一.处理缺失数据
1.找到缺失数据
data=pd.Series(['a','b',np.nan,'d'])
data.isnull()
isnull:为NaN则返回ture,否则返回false。not null 则与isnull相反。
2.滤除缺失数据
data.dropna()
dropna:丢弃含有nan的行
data.dropna(how='all')
丢弃全为nan行的一行
data.dropna(thresh=2)
出现二个及二个以上的nan时该行被删除
3.填充数据
df.fillna(0)
将缺失值出现的地方用0赋值
df.fillna(method='ffill')
会将nan出现的前一个数据不断的往下复制
二.数据转换
1.移除重复数据
data.duplicated()
检查是否含有重复数据,有则返回ture
data.drop_duplicates()
删除重复的一列
2.利用函数或映射进行数据转换
data['foood'].map(meat)
将meat中的值索引到food列中
3.替换值
data.replace(-999,np.nan)
将data中-999赋值为nan
4.重命名轴索引
data.reindex()
只能修改已有的标签名,不对原数据产生影响
三.离散化和面元划分
ages=[20,22,25,27,21,23,37,31,61,64,41,32]
bins=[18,25,35,60,100]
cats=pd.cut(ages,bins)
将ages中的数据分成四个阶段分别为18,25,35,60,100
pd.value_counts(cats)
统计各阶段的计数
cats=pd.qcut(data,4)
qcut:将面元平均分布,划分成大小相等的面元
四.排列和随机采样
sum=np.random.permutation(6)
随机排列1-6的数
df.sample(n=3)
随机选择三行数据