dataframe sample 采样,抽样

20220422

seed = 1
random.seed(seed)

numpy
np.random.seed(seed)
随机抽样设置随机种子  第二种显示不成功

20220324

https://blog.csdn.net/DSTJWJW/article/details/90667570
前面说random.sample方法比choice方法快的多
不重复随机抽样

20211223

# 读取数据集
test_data_all = pd.read_csv(PATH+'data_format1/test_format1.csv',chunksize=200000)

for i,j in enumerate(test_data_all):
    if i == 0:
       test_data = j

train_data_all = pd.read_csv(PATH+'data_format1/train_format1.csv',chunksize=1000000)

for i,j in enumerate(train_data_all):
    if i == 0:
       train_data = j
抽样读取数据

def read_csv(file_name, num_rows):
    return pd.read_csv(file_name, nrows=num_rows)
    居然可以直接抽样读取

20211010

无论是什么平台,用户的活跃度分布都是一个长尾分布,越活跃的用户对应的人数越少,但是其所占的行为越多。这种情况下,如果不考虑用户活跃度去筛选正负样本,难免活跃用户所占的权重就会增大,此时有效的解决办法是针对每个用户提取相同的正负样本。

采样要注意保持和原来的分布一样?

pandas.DataFrame.sample 随机选取若干行


1    数据切片选取
1.1    pandas.DataFrame.sample 随机选取若干行
1.1.1     功能说明
             有时候我们只需要数据集中的一部分,并不需要全部的数据。这个时候我们就要对数据集进行随机的抽样。pandas中自带有抽样的方法。

功能相似:numpy.random.choice
    Generates a random sample from a given 1-D numpy array.

1.1.2     使用说明
1.    函数名及功能
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)[source]

2.    输入参数说明

参数名称 参数说明 举例说明
n 要抽取的行数

df.sample(n=3,random_state=1)
提取3行数据列表
注意,使用random_state,以确保可重复性的例子。

frac

抽取行的比例
例如frac=0.8,就是抽取其中80%。

df.sample(frac=0.8, replace=True, random_state=1)
replace

是否为有放回抽样,
True:有放回抽样
False:未放回抽样

True:取行数据后,可以重复放回后再取
False:取行数据后不放回,下次取其它行数据
注意:当N>总数据容量,replace设置为值时有效

 

weights

字符索引或概率数组

axis=0:为行字符索引或概率数组
axis=1:为列字符索引或概率数组

 
random_state

int: 随机数发生器种子
或numpy.random.RandomState

random_state=None,取得数据不重复
random_state=1,可以取得重复数据

 

axis

选择抽取数据的行还是列
axis=0:抽取行
axis=1:抽取列

也就是说axis=1时,在列中随机抽取n列,在axis=0时,在行中随机抽取n行。

3.    返回值说明
返回选择的N行元素的DataFrame对象。

你可能感兴趣的:(概率论,机器学习,python)