📅  最后修改于: 2023-12-03 15:21:53.347000             🧑  作者: Mango
在处理数据时,我们常常需要从一个 DataFrame 中选取部分数据,而其中一种情况是需要随机选择其中的列。本文将介绍如何使用 Python 的 Pandas 库中的 sample 函数随机选择 DataFrame 中的列。
sample 函数的语法如下所示:
DataFrame.sample(n=None, frac=None, axis=None, random_state=None)
其中:
n
:要选取的行数或列数,如果不指定,则默认为 1。frac
:要选取的行数或列数所占总数的比例,如果不指定,则默认为 None。axis
:要选取的维度,0 表示选取行,1 表示选取列,如果不指定,则默认为 0。random_state
:用于控制随机种子的参数,确保在多次执行代码时输出结果的一致性。如果不指定,则每次执行程序时随机数都会不同。我们首先来创建一个简单的 DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
现在,我们来随机选择其中的一列。我们可以使用如下的代码:
rand_col = df.sample(n=1, axis=1)
print(rand_col)
输出结果为:
B
0 4
1 5
2 6
在这里,我们使用了 sample 函数,并且指定了要选取的列数为 1。由于我们想要选取列而不是行,所以我们还需要指定参数 axis=1
。
如果我们想要选择多列,可以将参数 n 的值设置为所需的列数。例如,如果我们想要选择两列,可以将代码修改为:
rand_cols = df.sample(n=2, axis=1)
print(rand_cols)
输出结果为:
C B
0 7 4
1 8 5
2 9 6
在这里,我们选择了两列,其中包括了列名为 B 和 C 的两列数据。
如果不想手动指定要选取的列数,可以使用 frac
参数,它可以指定要选取的列数所占总列数的比例。例如,要选择一半的列,可以将参数设置为 frac=0.5
:
rand_cols = df.sample(frac=0.5, axis=1)
print(rand_cols)
输出结果为:
B C
0 4 7
1 5 8
2 6 9
在这里,我们让 frac=0.5
,这意味着我们需要随机选取一半的列。
最后,我们再来看一下如何控制随机种子,以确保随机数的一致性。我们可以在函数的参数中指定一个整数作为随机种子,例如:
rand_cols = df.sample(n=2, axis=1, random_state=42)
print(rand_cols)
输出结果为:
B A
0 4 1
1 5 2
2 6 3
在这里,我们将随机种子设置为 42,这样每次执行程序时随机选择的列都将是相同的。
使用 Pandas DataFrame 中的 sample 函数,在数据处理时可以帮助我们轻松地随机选择行或列。在实际的工作中,我们可以根据具体需求,灵活地运用该函数,从而更好地进行数据分析和处理。