数据分析中常用小函数汇总【持续更新,个人笔记。。。】

这篇博客汇总了数据分析中的实用技巧,包括缺失值比例计算、缺失值填充、特征相关性可视化、时间戳转换、离散化处理、数据排序、数据聚合与连接、时间差计算、交叉验证模型训练以及特征重要性评估等,是数据科学和机器学习项目中的常用操作。
摘要由CSDN通过智能技术生成

输出缺失值所占比例

def missing_data(data):
    total = data.isnull().sum()
    percent = (data.isnull().sum()/data.isnull().count()*100)
    tt = pd.concat([total, percent], axis=1, keys=['Total', 'Percent'])
    types = []
    for col in data.columns:
        dtype = str(data[col].dtype)
        types.append(dtype)
    tt['Types'] = types
    return(np.transpose(tt))

缺失值填充

众数:mode() | 平均数:mean() | 中位数:median

train.product_type[train.product_type.isnull()]=train.product_type.dropna().mode().values

绘图表示特征之间的相关系数

# 计算所有特征值每两个之间的相关系数,并作图表示。
corrmat = train.corr()# 得到相关系数
f,ax = plt.subplots(figsize = (12,9))
sns.heatmap(corrmat, vmax = .8, square = True)#热点图

# 取出相关性最大的前十个,做出热点图表示
k = 10 # number of variables for heatmap
cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index
cm = np.corrcoef(train[cols].values.T)
sns.set(font_scale=1.25)
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={
   'size': 10}, yticklabels=cols.values, xticklabels=cols.values)
plt.show()

时间戳转化为日期

time_format = '%Y-%m-%d %H:%M:%S'
def get_date(timestamp) :
    time_local = time.localtime(timestamp)
    dt = time.strftime(time_format,time_local)
    
    return dt
train_df['action_date'] = train_df['timestamp_of_behavior'].apply(get_date)
train_df['action_date'] = pd.to_datetime(train_df['action_date'])

train_df['action_day'] = train_df['action_date'].dt.day
train_df['action_hour'] = train_df['action_date'].dt.hour
train_df['action_minute'] = train_df['action_date'].dt.minute
train_df['action_week'] = train_df['action_date'].dt.weekday

离散属性数字化

def encode_count(df,column_name):
        lbl = preprocessing.LabelEncoder()
        lbl.fit(list(df[column_name].values))
        df[column_name] = lbl.transform(list(df[column_name].values))
        
        return df
train_df = encode_count(train_df,'gender&
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值