pandas sample 分层抽样
时间: 2023-10-12 08:11:49 浏览: 59
pandas中的sample函数可以对数据进行简单随机抽样,但如果需要进行分层抽样,可以使用groupby函数和apply函数结合使用,具体步骤如下:
1. 将数据按照分层变量进行分组
```
grouped = df.groupby('stratum_variable')
```
2. 对每个分组进行apply操作,从中抽取样本
```
sampled = grouped.apply(lambda x: x.sample(n=sample_size))
```
其中,sample_size为每个分层的样本大小,可以根据需要进行设置。
完整代码示例:
```
import pandas as pd
# 创建示例数据
data = {'stratum_variable': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'value': [1, 2, 3, 4, 5, 6, 7, 8, 9]}
df = pd.DataFrame(data)
# 定义分层变量和样本大小
stratum_variable = 'stratum_variable'
sample_size = 2
# 分层抽样
grouped = df.groupby(stratum_variable)
sampled = grouped.apply(lambda x: x.sample(n=sample_size))
print(sampled)
```
输出结果:
```
stratum_variable value
stratum_variable
A 2 A 3
1 A 2
B 5 B 6
4 B 5
C 7 C 8
8 C 9
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)