DataFrame.apply调用自定义函数
DataFrame.apply(self, func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **kwds)
按指定行/列传输到函数,调用函数进行数据处理,并返回按行/列计算值
import numpy as np
import pandas as pd
#创建函数计算列空值
def not_null_count(column):
column_null=pd.isnull(column)
null=column[column_null]
return len(null)
#创建DataFrame
data=pd.DataFrame(np.zeros((10,10)))
data.iloc[2,2]=None
data.iloc[5,7]=None
#调用函数计算空值
count=data.apply(not_null_count)
print(count)
import numpy as np
import pandas as pd
#创建分类函数
def class_column(column):
c_class=column[4]
if pd.isnull(c_class):
return 'null'
elif c_class <=-0.5:
return '[-1,-0.5]'
elif c_class<=0 :
return '(-0.5,0]'
elif c_class<=0.5:
return '(0,0.5]'
else:
return '(0.5,1]'
#创建数组
data=pd.DataFrame(np.hstack((np.zeros((16,4)),np.sin(np.arange(0,4*np.pi,np.pi/4)).reshape(16,1))))
#print(data)
#调用函数分类数据
data[5]=data.apply(class_column,axis=1)
print(data)