datafram随机选取样本
时间: 2023-10-21 21:07:20 浏览: 216
随机抽取数据
在 Pandas 中,可以使用 `sample` 方法从 DataFrame 中随机选取样本。该方法的基本语法如下:
```python
df.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
```
其中,各参数的含义如下:
- n:选取的样本数量。如果指定了 `frac` 参数,则 `n` 和 `frac` 中必须至少指定一个。
- frac:选取的样本比例。取值范围为 [0, 1],表示选取 DataFrame 中的比例。如果指定了 `n` 参数,则 `n` 和 `frac` 中必须至少指定一个。
- replace:是否允许重复选取。默认为 `False`,表示不允许重复选取。
- weights:样本权重。可以为每个样本指定一个权重,选取样本时会考虑这个权重。如果不指定,则所有样本的权重都为 1。
- random_state:随机数种子。如果指定了该参数,则每次调用该函数时得到的结果都相同。
- axis:选取样本的轴。默认为 0,表示选取行样本;如果指定为 1,则表示选取列样本。
举个例子,下面的代码演示了如何从 DataFrame 中随机选取 10 个样本:
```python
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]})
# 从 DataFrame 中随机选取 10 个样本
df_sample = df.sample(n=10, replace=True)
print(df_sample)
```
输出结果类似于:
```
A B
0 1 6
0 1 6
4 5 10
2 3 8
4 5 10
0 1 6
0 1 6
4 5 10
3 4 9
3 4 9
```
注意,由于指定了 `replace=True`,所以有可能会选取重复的样本。如果想要选取不重复的样本,则应该将 `replace` 参数设置为 `False`。如果需要选取一定比例的样本,可以使用 `frac` 参数,例如:
```python
df_sample = df.sample(frac=0.5, replace=False)
```
这里的 `frac=0.5` 表示选取 DataFrame 中的一半样本。
阅读全文