python 读取csv文件 在每个类别中选取等比例训练样本
时间: 2023-07-18 21:05:12 浏览: 178
可以使用`pandas`库读取csv文件,并且使用`groupby`方法将数据按照类别分组。然后可以根据每个类别的总数计算出需要选取的训练样本数量,再使用`sample`方法从每个类别中选取相应数量的训练样本。
以下是一个示例代码:
```python
import pandas as pd
# 读取csv文件
df = pd.read_csv('data.csv')
# 按照类别分组
groups = df.groupby('category')
# 计算每个类别需要选取的训练样本数量
sample_size = 100 # 每个类别选取100个样本
sample_counts = {}
for name, group in groups:
count = len(group)
sample_counts[name] = min(count, sample_size)
# 从每个类别中选取相应数量的训练样本
samples = []
for name, group in groups:
sample_count = sample_counts[name]
if sample_count > 0:
sample = group.sample(n=sample_count)
samples.append(sample)
# 合并选取的训练样本
result = pd.concat(samples)
```
在这个示例代码中,我们假设每个类别选取100个训练样本,可以根据实际情况调整`sample_size`变量的值。另外,`sample`方法默认是随机选取训练样本,如果需要按照一定的规则选取,可以自己编写选择逻辑。
阅读全文