一、对数据正态化以便观测
np.log(y)
二、获取除某行的数据pands->data
data.drop(‘charge’)
三、空值不多时填充空值
填0
data.fillna(0,replace=True)
填中位数
data[‘a’].fillna(data[‘a’].median(),inplace = True)
四、应用自定义函数pands->data
data.apply(function,axis=1,args())
对dataframe的数据的每一列只用自定义函数function(),将元 祖args中的参数传给function
五、空值太多就删除,不多就填充
六、傅里叶变换
from scipy import fft
from scipy.io import wavefile
(sample_rate,x)=wavfile.read(文件路径)
ftt_feature = fft(x,sample_rate)
七、特征分析:
1、查看空值数:
data.apply(lambda x:sum(x.isnull()))
2、查看特征数据分布:
var=[]特征名称的列表
for v in var:
print(data[v].value_counnts())
3、研究某个特征所有取值对于label的分布情况
import seaborn as sns
sns.kdeplot(data.loc[data.sex=='male','charges'],
shade=True,label='male')
横轴是label取值
纵轴是样本数目
4、看数据的种类
len(data['city'].unique())
5、出生日期变成年龄
data['age']= data['DOB'].apply(lambda x: 119 - int(x[-2]))
6、用盒图看离群值
data.boxplot(column=[],return_type='axes')
7、数据的分布描述(均值,方差,中位数,极值)
data[].describe()
八、数值编码(数值化):
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
var_to_encode = [‘离散值列表’]
for col in var_to_encode:
data[col] = le.fit_transform(data[col])
九、one-hot 编码
data = pd.get_dummies(data,columns=var_to_encode)