Pandas是一个Python语言编写的数据框架,它提供了一些非常方便的系统取样方法。在数据分析中,有时候需要从数据集中随机抽取一部分数据进行分析,系统取样就是一种常用的方法。
Pandas提供了以下几种系统取样方法:
.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
:取样方法的主函数,其中参数说明如下:n
:取样个数,默认为None,如果指定了该参数,则表示取样个数为n;frac
:取样比例,默认为None,如果指定了该参数,则表示取样比例为frac;replace
:是否有放回抽样模式,True表示有放回抽样,False表示无放回抽样,默认为False;weights
:权重系数列表,可以指定每个样本的权重系数,用于非等可能取样,默认为None;random_state
:随机数种子,默认为None;-
axis
:指定取样的行(0)或列(1),默认为行(0)。 -
.nsmallest(n, columns, keep='first')
:按给定列的值进行升序排序后,取前n行数据,其中参数说明如下: n
:要取的数据条数;columns
:进行排序的列名或列名列表;-
keep
:当列存在相同值时,指定保留的方式,取值为first、last、all,默认为first。 -
.nlargest(n, columns, keep='first')
:按给定列的值进行降序排序后,取前n行数据,其中参数说明同nsmallest()
方法。
下面是具体操作示例:
首先,我们创建一个数据框:
import pandas as pd
df = pd.DataFrame({'A': range(1, 11), 'B': range(11, 21)})
print(df)
输出结果为:
A B
0 1 11
1 2 12
2 3 13
3 4 14
4 5 15
5 6 16
6 7 17
7 8 18
8 9 19
9 10 20
使用sample()
方法进行取样
- 取样个数为3,随机种子为10:
print(df.sample(n=3, random_state=10))
输出结果为:
A B
7 8 18
0 1 11
2 3 13
- 取样比例为0.4,有放回抽样:
print(df.sample(frac=0.4, replace=True, random_state=10))
输出结果为:
A B
3 4 14
8 9 19
10 1 11
8 9 19
使用nsmallest()
和nlargest()
方法取样
- 取最小的3个数:
print(df.nsmallest(3, 'A'))
输出结果为:
A B
0 1 11
1 2 12
2 3 13
- 取最大的4个数:
print(df.nlargest(4, 'B'))
输出结果为:
A B
9 10 20
8 9 19
7 8 18
6 7 17
以上就是Pandas系统取样方法的详细讲解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas的系统取样 - Python技术站