1.在素材数据文件 car_profiles. csv 中,共有 40 个关于汽车配置的样本,包括类型、气缸涡轮式、燃料、排气量、压缩率、功率、换档、车重、里程几项特征。试编写程序,完成以下几 项数据抽样:(1) 随机抽样。无放回,抽取出 30% 的样本量,并将抽样结果保存到新建的 Excel 文件中文件名为 samples.xlsx,数据表标签为“随机抽样”。 (2) 系统抽样。抽取 8 个本,并将结果保存到结果文件中标签为“系统抽样”的表中。 (3) 分层抽样。以车重属性分层,抽取属性值为“中”的样本9个,为“轻”的样本3个为“重”的样本 2个,共 14 个样本,并将结果保存到结果文件中标签为“分层抽样”的表中。(4) 整群抽样。随机抽取里程属性取值为“高”“中”“低”中的2 组样本,并将结果保存到结果文件中标签为“整群抽样”的表中。
时间: 2024-03-29 08:36:18 浏览: 131
抽样代码如下所示(注:需要 pandas 和 openpyxl 库):
```python
import pandas as pd
import random
from math import ceil
from openpyxl import Workbook
# 读取原始数据文件
df = pd.read_csv('car_profiles.csv')
# 随机抽样
random_sample = df.sample(frac=0.3, replace=False, random_state=2022) # 无放回抽样,抽取30%
random_sample.to_excel('samples.xlsx', sheet_name='随机抽样', index=False)
# 系统抽样
k = ceil(len(df) / 8) # 每 k 个样本抽取一个
systematic_sample = df.iloc[::k, :]
systematic_sample.to_excel('samples.xlsx', sheet_name='系统抽样', index=False)
# 分层抽样
stratified_sample = pd.concat([df[df['车重'] == '中'].sample(9),
df[df['车重'] == '轻'].sample(3),
df[df['车重'] == '重'].sample(2)])
stratified_sample.to_excel('samples.xlsx', sheet_name='分层抽样', index=False)
# 整群抽样
group1 = df[df['里程'] == '高'].sample(2)
group2 = df[df['里程'] == '中'].sample(2)
group3 = df[df['里程'] == '低'].sample(2)
cluster_sample = pd.concat([group1, group2, group3])
cluster_sample.to_excel('samples.xlsx', sheet_name='整群抽样', index=False)
```
以上代码中,`df` 是读取的原始数据文件,`random_sample`、`systematic_sample`、`stratified_sample` 和 `cluster_sample` 分别是四种抽样方法得到的样本集,最终结果保存到名为 `samples.xlsx` 的 Excel 文件中。
阅读全文