数据处理常用函数总结(部分)

线性回归模型

from sklearn import linear_model 
clf = linear_model.LinearRegression(fit_intercept=True, normalize=True)
# fit_intercept: 默认为True, 表示需要计算截距
# normalize: 
clf.fit(x, y) # 你和线性模型
k = clf.coef_ # 斜率 
b = clf.intercept_ # 截距 
y_pred = clf.predict(x) # 预测 y 值

时间序列数据

import pandas as pd 
...
df = pd.DataFrame(pd.read_excel(file))
df = df.set_index('COL_NAME', drop=True) # 将COL_NAME列设置为索引 drop=True表示将该列从数据表中删除

df1 = df.to_peroid('M') # to_peroid(freq) 按照freq指定的格式显示数据 'M' 按月显示, 'Q' 按季度显示 'A' 按年度显示

# 重采样 

在这里插入图片描述
在这里插入图片描述

杂项

isna

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

duplicated() drop_duplicates()

在这里插入图片描述
duplicated(keep=keep) keep说明了保留重复行中的哪些
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

dropna()

参考这里
df.dropna(axis=0/1, how='all'/'any', inplace=True/False)
axis=0 表示对行进行检查,axis=1表示对列进行检查
all 表示整行或整列都为na才删除;any表示只要有na就删除。

data = pandas.read_csv(file_name) # type(data) is DataFrame
del data[COL_NAME] # 从data中删除COL_NAME列 
data.dropna(axis=0, how='any', inplace=True) # 删除包含空值的行
#删除前可先用 isnull()判断一下 
# data[COL_NAME].isnull() 统计该属性为空的行 

value_counts()

在这里插入图片描述

get_dummies

groupby resample to_datetime .etc

标准化

from sklearn.preprocessing import StandardScaler

sc = StandardScaler()  # StandardScaler 对象,用于进行标准差标准化的初始化

df = sc.fit_transform(data.iloc[:,3:]) # 对括号中的参数进行标准化 

# 将数据集划分为训练集 和 测试集 
xtrain, xval, ytrain, yval = train_test_split(df, data['label'],
                                              test_size=0.2, random_state=2021)

# 模型构建,模型初始化,使用LightGBM库中的LGBMClassifier类进行基于梯度提升决策树(GBDT)算法的分类
model_lgb = lightgbm.LGBMClassifier(n_estimators=1000,  # 训练次数
                                    max_depth=8,  # 树的深度
                                    num_leaves=25,  # 树的最大叶子树
                                    colsample_bytree=0.5,  # 特征采样率
                                    learning_rate=0.1,  # 学习速率
                                    metric='auc'  # 模型评价指标
                                    )
# 执行模型训练,用于拟合(训练)LightGBM模型
model_lgb.fit(xtrain, ytrain,  # 训练数据的特征(输入),训练数据的标签(输出)。
              eval_metric='auc',
              # 验证的评价指标,评价指标使用'AUC'(Area Under the Curve)来衡量模型性能。您可以根据需要选择其他评价指标,如准确率('accuracy')或对数损失('logloss')等
              eval_set=[(xtrain, ytrain), (xval, yval)],  # 验证数据集的设置。在训练过程中,将使用验证数据集来监测模型的性能。第一个元组是训练数据集,第二个元组是验证数据集
              verbose=True,  # 是否打印训练信息,例如每棵树的评估结果。
              early_stopping_rounds=100  # 多少次模型精度没有提升时,模型停止训练,以避免过拟合。
              )

# 模型评价,model_lgb可能是一个已经训练好的LightGBM模型,而best_score_则是该模型在训练过程中获得的最佳得分。
print(model_lgb.best_score_)
# 预测标签
pres = model_lgb.predict(xval)
print(pres)
# 预测是否重复购买的概率
presprob = model_lgb.predict_proba(xval)[:, 1]
# predict_proba是LightGBM模型的一个方法,用于返回每个样本属于各个类别的概率。在这里,[:,1]表示取所有行的第二列,即取出预测为正类的概率。
print(presprob)


#####################
print(confusion_matrix(labels, predict_labels))
#####################
# 输出 confusion matrix 来衡量模型性能
#            预测为正类    预测为负类
#真实为正类       TP          FN
#真实为负类       FP          TN

print(classification_report(labels, predict_labels))
# 用于生成分类模型的分类报告,包括准确率(precision)、召回率(recall)、F1-score、支持数(support)等指标

print('准确率:', precision_score(labels, predict_labels)) # 类似有 recall_score(labels, predict_labels)

print('F1值:', f1_score(labels, predict_labels))  # F1 分数 = 2 * (精确率 * 召回率) / (精确率 + 召回率)
print('AUC值:', roc_auc_score(labels, presprob))

del

删除某些变量,也可以是变量的某一部分
在这里插入图片描述

参考资料

拣着可能会考的看一下就好,结合他们给的例子

set_index: 参考
set_index(COL)默认参数中drop=True.
reset_index()中默认参数drop=False.

groupby(COL).agg(‘mean’): 参考
groupby()的结果不能直接查看,实际上是按照COL分组后的若干个dataframe。分组后还要用 .agg({'salary':'median','age':'mean'})这样进行聚合操作。
可以给不同的列设置不同的聚合操作。
在这里插入图片描述
在这里插入图片描述

pandas.merge(left_df, right_df, on=‘COL’, how='left):
参考1同时对比了merge concat join,知道几个参数就行
参考2

调用时,分别是

pd.merge(df1, df2, ...)
pd.concat([df1, df2], axis=0) # 对行操作,相当于水平连接
df1.join(df2, ...)

concat例子
在这里插入图片描述
merge例子
pd.merge(left, right, on=COL, how=how)
how表示连接方式, left, right, inner, outer
left表示保留left表信息
right表示保留right表信息
inner表示保留left right交集信息
outer表示保留二者并集信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pandas检查行、列是否有缺失值
https://blog.csdn.net/gqyann/article/details/104919020

[455]pandas.DataFrame基本操作及缺失值处理 https://blog.csdn.net/xc_zhou/article/details/84993074

查看、删除重复元素
https://blog.csdn.net/weixin_44943394/article/details/103930179

数据清洗(重复、缺失、异常) https://zhuanlan.zhihu.com/p/493672291

pandas数据日期函数之date_range()、resample()与to_period() https://blog.csdn.net/m0_69435474/article/details/124339573

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MATLAB的unique函数用于返回数组的唯一值。语法如下: ``` [C, ia, ic] = unique(A) ``` 其,A是要操作的数组。返回的结果C是数组A的唯一值,ia是一个列向量,包含了A每个唯一值的第一个索引,ic是一个与A同大小的矩阵,包含了每个元素在C的索引。 例如,如果有一个数组A=[1,2,3,1,2,4], 则调用unique函数会返回C=[1,2,3,4],ia=[1;2;3;6],ic=[1,2,3,1,2,4]。 此外,unique函数有许多可选参数可以使用,例如'rows'选项可用于比较矩阵的行,'stable'选项可确保结果保持原始顺序。具体使用方法可以参考MATLAB帮助文档。 ### 回答2: matlab的unique函数是用于返回数组唯一元素的函数。它可以帮助我们确定数组的不重复元素,并将它们按照顺序排列。 unique函数的基本语法是:[C, ia, ic] = unique(A)。 其,A是要处理的数组,C是包含了数组A唯一元素的向量,ia是一个指示唯一元素在A出现位置的索引向量,ic是一个指示每个元素在C的索引向量。 unique函数的输出包含三个部分: 1. C:它是唯一元素的向量,按照A的顺序排列。 2. ia:它指示了唯一元素在A的索引位置。这意味着,如果要找到某个唯一元素在A的位置,可以使用ia。 3. ic:它指示了A的每个元素在C的索引位置。这意味着,如果要将A的元素替换为在C对应的位置,可以使用ic。 unique函数还有其他可选的输入参数,例如'duplicate'和'stable',可以用来控制函数的行为。 总结来说,matlab的unique函数是一个常用且实用的函数,可以帮助我们处理数组的唯一元素,用于数据分析和处理的许多场景。 ### 回答3: MATLAB的unique函数是用于查找数组的唯一值的函数。它可以返回数组所有不重复的元素,并以升序排列。该函数的基本用法如下: unique(A):对数组A进行唯一值筛选,并返回一个排序后的行向量。 对于输入的数组A,函数将返回A的所有唯一元素,并按升序排列。如果A是多维数组,则在将其转换为一维数组后进行操作。 unique(A,'rows'):对二维矩阵A的行向量进行唯一值筛选。 当处理二维矩阵A时,要查找每一行的唯一行,可以使用此语法。函数将返回A的唯一行,并按升序排列。此语法只适用于行向量,对于列向量或多维数组无效。 [~,IA,IC] = unique(A):除了返回唯一值外,还返回索引向量IA和计数向量IC。 如果想要得到更多信息,可以使用此语法。返回的IA向量包含了A每个唯一值的第一次出现的索引。IC向量包含了A每个元素对应的唯一值的索引。而前面使用的波浪符号“~”表示我们不关心该值,所以其被忽略掉了。 以上是unique函数的基本用法,根据具体的需求,可以结合其他MATLAB函数对结果进行进一步处理。值得注意的是,该函数是区分大小写的,所以对于字符数组的处理需谨慎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值