peel在Linux生成excel,如何将多个Excel文件合并成一个且保留原有数据?

如何将多个Excel文件合并成一个且保留原有数据?事实上,我们可以借用Excel宏命令来处理该操作,并且保留原有数据,建立多个Sheet页,具体操作请看下文多个Excel文件合并成一个的方法。

如何将多个Excel文件合并成一个且保留原有数据?

1、将需合并的Excel文件放在同一个文件夹中,并这个文件中新建一个Excel文件。

76-1F60Q01525-water.jpg

2、打开新建的Excel文件,按 Alt + F11 键,打开宏,选择视图→代码窗口。

76-1F60Q01525-50-water.jpg

76-1F60Q01525-51-water.jpg

3、将下面的代码拷贝进去:

01Sub sheets2one()

02'定义对话框变量

03Dim cc As FileDialog

04Set cc = Application.FileDialog(msoFileDialogFilePicker)

05Dim newwork As Workbook

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会基于泰坦尼克号数据集进行建模分析,并且将分析过程详细阐述,以便您可以深入了解机器学习的建模流程。 首先,我们需要了解泰坦尼克号数据集。这个数据集包含了乘客的各种信息,例如姓名、性别、年龄、船舱等级、票价、登船港口等等,同时还包含了这些乘客是否生还的标签。这个数据集是一个二分类问题,我们需要通过构建模型来预测乘客的生还情况。 接下来,我们需要进行一些数据预处理工作。首先,我们需要对数据进行探索性分析,以了解数据的特点和分布情况。我们可以使用Python的pandas和matplotlib库来进行数据分析和可视化。 首先,我们导入数据集,并查看前几行数据: ```python import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("titanic.csv") print(data.head()) ``` 输出结果如下: ``` PassengerId Survived Pclass \ 0 1 0 3 1 2 1 1 2 3 1 3 3 4 1 1 4 5 0 3 Name Sex Age SibSp \ 0 Braund, Mr. Owen Harris male 22.0 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 2 Heikkinen, Miss. Laina female 26.0 0 3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 4 Allen, Mr. William Henry male 35.0 0 Parch Ticket Fare Cabin Embarked 0 0 A/5 21171 7.2500 NaN S 1 0 PC 17599 71.2833 C85 C 2 0 STON/O2. 3101282 7.9250 NaN S 3 0 113803 53.1000 C123 S 4 0 373450 8.0500 NaN S ``` 我们可以看到,数据集中包含了12个特征,其中`Survived`表示生还情况,0表示未生还,1表示生还。同时,数据集中还存在缺失值和一些不必要的特征,需要进行数据清洗和特征选择。 接下来,我们对数据进行探索性分析,以了解数据的特点和分布情况。我们可以使用Python的pandas和matplotlib库来进行数据分析和可视化。 ```python #数据探索性分析 #查看数据集的基本情况 data.info() #查看数值型特征的分布情况 data.describe() #查看离散型特征的分布情况 data.describe(include=['O']) #查看生还情况的分布 data['Survived'].value_counts().plot(kind='bar') plt.title("Survival distribution") plt.show() ``` 输出结果如下: ``` <class 'pandas.core.frame.DataFrame'> RangeIndex: 891 entries, 0 to 890 Data columns (total 12 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 PassengerId 891 non-null int64 1 Survived 891 non-null int64 2 Pclass 891 non-null int64 3 Name 891 non-null object 4 Sex 891 non-null object 5 Age 714 non-null float64 6 SibSp 891 non-null int64 7 Parch 891 non-null int64 8 Ticket 891 non-null object 9 Fare 891 non-null float64 10 Cabin 204 non-null object 11 Embarked 889 non-null object dtypes: float64(2), int64(5), object(5) memory usage: 83.7+ KB ``` ``` PassengerId Survived Pclass Age SibSp Parch Fare count 891.000000 891.000000 891.000000 714.000000 891.00000 891.000000 mean 446.000000 0.383838 2.308642 29.699118 0.52301 32.204208 std 257.353842 0.486592 0.836071 14.526497 1.10274 49.693429 min 1.000000 0.000000 1.000000 0.420000 0.00000 0.000000 25% 223.500000 0.000000 2.000000 20.125000 0.00000 7.910400 50% 446.000000 0.000000 3.000000 28.000000 0.00000 14.454200 75% 668.500000 1.000000 3.000000 38.000000 1.00000 31.000000 max 891.000000 1.000000 3.000000 80.000000 8.00000 512.329200 ``` ``` Name Sex Ticket Cabin Embarked count 891 891 891 204 889 unique 891 2 681 147 3 top Hocking, Mrs. Elizabeth (Eliza Needs) male 347082 B96 B98 S freq 1 577 7 4 644 ``` ![](https://img-blog.csdnimg.cn/20220123184156213.png) 从上述分析和可视化结果可以看出: 1. 数据集中存在缺失值,需要进行处理; 2. `Age`、`Fare`和`SibSp`等特征存在着较大的差异,需要进行归一化处理; 3. `Pclass`、`Sex`和`Embarked`等特征与生还情况的关系较为密切,需要进行特征选择。 接下来,我们进行数据预处理,包括缺失值处理、归一化处理和特征选择。 ```python #数据预处理 #缺失值处理 data['Age'].fillna(data['Age'].mean(), inplace=True) data['Embarked'].fillna(value=data['Embarked'].mode()[0], inplace=True) data.drop(columns=['Cabin', 'PassengerId', 'Ticket', 'Name'], inplace=True) #归一化处理 data['Age'] = (data['Age'] - data['Age'].min()) / (data['Age'].max() - data['Age'].min()) data['Fare'] = (data['Fare'] - data['Fare'].min()) / (data['Fare'].max() - data['Fare'].min()) #特征选择 data = pd.get_dummies(data, columns=['Pclass', 'Sex', 'Embarked']) X = data.drop(columns=['Survived']) y = data['Survived'] print(X.head()) print(y.head()) ``` 输出结果如下: ``` Age SibSp Parch Fare Pclass_1 Pclass_2 Pclass_3 Sex_female Sex_male Embarked_C Embarked_Q Embarked_S 0 0.271174 1 0 0.014151 0 0 1 0 1 0 0 1 1 0.472229 1 0 0.139136 1 0 0 1 0 1 0 0 2 0.321438 0 0 0.015469 0 0 1 1 0 0 0 1 3 0.434531 1 0 0.103644 1 0 0 1 0 0 0 1 4 0.434531 0 0 0.015713 0 0 1 0 1 0 0 1 0 0 1 1 2 1 3 1 4 0 Name: Survived, dtype: int64 ``` 经过数据预处理后,我们得到了特征矩阵`X`和标签向量`y`。接下来,我们需要对数据集进行划分,将数据集划分为训练集和测试集,以便对模型进行训练和评估。 ```python #数据集划分 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) print(X_train.shape) print(X_test.shape) ``` 输出结果如下: ``` (712, 11) (179, 11) ``` 接下来,我们选择合适的模型进行训练和评估。在这里,我们选择逻辑回归模型,并使用交叉验证和网格搜索来进行模型选择和调参。 ```python #模型选择和调参 from sklearn.linear_model import LogisticRegression from sklearn.model_selection import GridSearchCV from sklearn.model_selection import cross_val_score #逻辑回归模型 lr = LogisticRegression() #交叉验证 scores = cross_val_score(lr, X_train, y_train, cv=5) print("Cross-validation scores:", scores) print("Average score:", scores.mean()) #网格搜索 param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100]} grid = GridSearchCV(lr, param_grid=param_grid, cv=5) grid.fit(X_train, y_train) print("Best parameters:", grid.best_params_) print("Best score:", grid.best_score_) print("Test score:", grid.score(X_test, y_test)) ``` 输出结果如下: ``` Cross-validation scores: [0.82517483 0.81818182 0.76760563 0.77464789 0.8028169 ] Average score: 0.7972856135617889 Best parameters: {'C': 1} Best score: 0.802258424785807 Test score: 0.7988826815642458 ``` 从上述结果可以看出,逻辑回归模型在这个数据集上的表现不错,交叉验证得分均在0.76以上,测试集得分为0.79。同时,经过网格搜索,最优的超参数为C=1。 最后,我们使用训练好的模型对测试集进行预测,并计算模型的准确率、精确率和召回率等性能指标。 ```python #模型评估 from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score y_pred = grid.predict(X_test) print("Accuracy:", accuracy_score(y_test, y_pred)) print("Precision:", precision_score(y_test, y_pred)) print("Recall:", recall_score(y_test, y_pred)) print("F1 score:", f1_score(y_test, y_pred)) ``` 输出结果如下: ``` Accuracy: 0.7988826815642458 Precision: 0.725 Recall: 0.7317073170731707 F1 score: 0.7283372365339578 ``` 从上述结果可以看出,模型在测试集上的准确率为0.80,精确率为0.73,召回率为0.73,F1分数为0.73。这个结果表明,模型可以较好地预测乘客的生还情况。 综上所述,我们使用泰坦尼克号数据集进行了一个完整的建模分析,包括数据预处理、模型选择和调参、模型评估等步骤。这个分析过程可以帮助我们更好地理解机器学习的建模流程,同时也可以为我们在实际工作中应用机器学习提供一些参考。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值