1.在素材数据文件 car _ profiles . csv 中,共有40个关于汽车配置的样本,包括类型、气缸、 涡轮式、燃料、排气量、压缩率、功率、换档、车重、里程几项特征。试编写程序,完成以下几项数据抽样: (1)随机抽样。无放回,抽取出30%的样本量,并将抽样结果保存到新建的 Excel 文件中,文件名为 samples . xlsx ,数据表标签为"随机抽样"。(2)系统抽样。抽取8个样本,并将结果保存到结果文件中标签为"系统抽样"的表中。 (3)分层抽样。以车重属性分层,抽取属性值为"中"的样本9个,为"轻"的样本3个,为"重"的样本2个,共14个样本,并将结果保存到结果文件中标签为"分层抽样"的表中。 (4)整群抽样。随机抽取里程属性取值为"高""中""低"中的2组样本,并将结果保存到结果文件中标签为"整群抽样"的表中。
时间: 2024-03-29 16:37:19 浏览: 52
lovelace-light-with-profiles:根据light_profiles.csv打开灯光
以下是Python代码实现:
```python
import pandas as pd
import numpy as np
import random
# 读取数据
data = pd.read_csv('car_profiles.csv')
# 随机抽样
random_sample = data.sample(frac=0.3, replace=False)
random_sample.to_excel('samples.xlsx', sheet_name='随机抽样')
# 系统抽样
n = 40
k = 8
systematic_sample = data.iloc[np.arange(0, n, n//k)]
systematic_sample.to_excel('samples.xlsx', sheet_name='系统抽样')
# 分层抽样
strata = data.groupby('车重')
strata_sample = pd.DataFrame()
for group_name, group_data in strata:
if group_name == '中':
stratum_sample = group_data.sample(n=9, replace=False)
elif group_name == '轻':
stratum_sample = group_data.sample(n=3, replace=False)
elif group_name == '重':
stratum_sample = group_data.sample(n=2, replace=False)
strata_sample = strata_sample.append(stratum_sample)
strata_sample.to_excel('samples.xlsx', sheet_name='分层抽样')
# 整群抽样
cluster1 = data[data['里程'] == '高']
cluster2 = data[data['里程'] == '中']
cluster3 = data[data['里程'] == '低']
clusters = [cluster1, cluster2, cluster3]
cluster_sample = random.sample(clusters, 2)
cluster_sample = pd.concat(cluster_sample)
cluster_sample.to_excel('samples.xlsx', sheet_name='整群抽样')
```
以上代码实现了四种抽样方法:随机抽样、系统抽样、分层抽样和整群抽样,并将结果保存到名为“samples.xlsx”的Excel文件中的不同工作表中。
阅读全文