1、数据筛选-赋值操作
在原有数据基础上增添一列。
将Python这一列的成绩统一增加十分:
将索引为2的同学的Math成绩改为100分:
想要批量修改多个数据时,将索引为2,4的Python和EN成绩改为100
当想要获取更多的数据的时候,就需要将索引和切片配合使用。
2、数据集成
1、concat数据串联
将1班和班的成绩合并在一起
pd.concat将df1和df2的数据合并在一起,默认行合并。
现在将df3和df1合并在一起。
将df1和df3合并在一起发现数据中出现了NAN,这是空数据的意思,原因是因为pd.concat默认行合并,但是df1和df3在有的地方数据不同步导致的,我们将合并方向改为列合并,即将axis设定为1。
将合并方向改为列合并就可以得到想要的结果。
2、insert 插入
首先创建一个含有'Python','Keras','Tensorflow'的二维数据,现在想要将Math成绩添加到Keras后面。
loc表示在第几个索引后添加,column表示所要添加的列索引名称,value为添加的数值。
在python后面加上EN
这样的inset方法对于列索引较少的方便,当需要添加的数据在最后位置时,loc的值就不好确定了,我们可以先获取原先数据的列索引(.columns),并将其转化为列表,转化为列表后调用index函数获取特殊字段的位置后加1即可。
向TensorFlow后面插入一列中文成绩
3、数据清洗
1、重复数据过滤
上数据中,10和20是重复数据,在进行数据分析时,首先要找出重复数据,然后删除掉重复数据。
.duplicated()用于找出重复数据,并以布尔值标记出来。
.drop_duplicates()用于清除重复数据。
2、空数据过滤
索引6中有一个空数据,在数据分析时要找出空数据。
.isnull用于找出空数据,用布尔值标记。
.dropna()用于删除空数据,在计算中,None和NaN没有区别,都表示空数据,只不过None是python的内容,而NaN是numpy的内容。
.fillna可以以指定数值将空数据填充。
3、指定行列删除
del 删除指定行列,是将原数据一起删除,创建一个新的数据。
.drop删除指定行列,不会对原数据造成影响。
4、异常值
在符合正态分布的数据中,通常将大于三倍标准差的数值我们认为是异常值,异常值的存在会影响我们对数据的分析。
创建30000个符合正态分布的数据,判断出第一列中大于3倍标准差的数值。
4、数据转换
1、轴和元素的替换
想要替换一个数据为空数据时:
想要重新定义轴索引的时候:
想要将某个值,或者某些特定位置的值更改:
将数字5换为1024
将5,7替换为1024
将Python中为2的数字替换为1024
2、 map series
map元素可以批量元素改变,可以通过字典映射更改,也可以经过显示函数映射修改。
1、字典映射更改
字典映射,将Keras中的9改为hello,5改为world,空数据改为AI。
2、显示函数映射
显示函数映射,将Keras中的9改为hello,5改为world,其他数值不变,不会像字典映射那样,没有修改的数值变为空数据。
3、apply元素改变。既支持 Series,也支持 DataFrame
现有python math en成绩,想要在python后面添加一列显示成绩等级,小于60为不及格,小于80的为中等,大于80的为优秀。
现在想要在所有数据后都添加成绩等级
因为想要在多列增加,所以要使用for循环来将所有列索引遍历一遍,在每一个列索引后都增添一列成绩等级。