apply函数
apply函数是pandas
里面所有函数中自由度最高的函数。该函数如下:
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)
该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。
这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。
apply常用于数据预处理
这块的主要工作就是利用pandas里面的函数,去查看一下刚特殊操作后的数据。
def data_handle():
data = pd.read_csv('C:\\Users\\happy\\Desktop\\old_data.csv')
#print(data.describe()) #查看统计信息,发现最小值有-10000的异常数据
#print((data.isnull()).sum()) #查看是否存在缺失值
#print((data.duplicated()).sum()) #重复值
def change_zero(x):
if x == -10000:
return 0
else :
return x
data['values'] = data['values'].apply(lambda x: change_zero(x))
#利用均值填充缺失值
mean = data['values'].mean()
def change_mean(x):
if x == 0:
return mean
else:
return x
data['values'] = data['values'].apply(lambda x: change_mean(x))
#保存处理过的数据
data.to_csv('C:\\Users\\happy\\Desktop\\new_data.csv',index=0)
print('new data is existing')