本文只面向小白,大佬请多多指教批评。
一、删除空值
1、删除未经处理的空值数据所在的行或列
在这种情况下我们看到的空值数据通常显示的是NaN
那么这种情况就比较好处理直接调用dropna()函数
应用:
order.dropna(axis=1)
删除过后的样子:
2、删除已用代表空值的’NA’替换过的数据
这个时候就需要写一个循环来删除数据所在行或者列(这里删的是列)
删除前先看一下数据
开始写循环
for i in detail1.columns:
# 遍历数据行
for j in range(len(detail1)):
# 判断数据,如果在i行j列的数据为'NA'时
if detail1.loc[j,i] == 'NA':
# 查看具体那一列被删除了
print("正在删除%s列" % i)
# 调用drop函数删除空值所在列
detail1.drop(labels = i ,axis=1,inplace=True)
# 当执行删除后需立即跳出该循环,否者会报错,出现找不到该列。
break
# 最后看一下删除空值列后的表
detail1
输出结果:
可以看到此时已经没有值为空的列了。
二、去重
调用去重函数pd.drop_duplicates()
应用:
首先创建一个DataFrame
(通过传递可以转换为类似系列的对象的字典来创建DataFrame)
import pandas as pd
import numpy as np
dates = pd.date_range('20170101', periods=4)
datas = pd.DataFrame({
'A' : range(1,5),
'B' : dates, #以年月日的方式创建一列数据
'C' : pd.Series(range(6,10),index=list(range(4)),dtype='float32'), #以序列的形式创建一列数据
'D' : pd.Categorical(['test','train','test','train']),
})
print(datas)
可以看到在D列有重复的数据test和train
先试试对某一列去重(这里是D列)
# 对某一列去重
datas.drop_duplicates(['D'])
结果
有时我们所得到的数据不只是一列重复还可能是多列,再试试对多列去重。
# 对多列一起去重
datas.drop_duplicates(['A','B','C','D']) # 我们可以看到没有变化因为没有完全一样的一行
结果: