完整报错
ValueError: Cannot take a larger sample than population when 'replace=False'
解决方法
在抽样时目标样本数大于已有的样本时就会报错,需要根据业务自行判断,比如下面是一种解决方法
import pandas as pd
import numpy as np
dataframe = pd.DataFrame(np.random.random(size=(10, 2)))
# 开始抽样
sample_df = dataframe.sample(20) if dataframe.shape[0] > 20 else dataframe # 如果采样数量超过有的样本,就全部返回,否则只返回20个
print(sample_df.shape)
sample_df = dataframe.sample(6) if dataframe.shape[0] > 6 else dataframe
print(sample_df.shape)
问题解析
使用如下代码会导致报错:
import pandas as pd
import numpy as np
dataframe = pd.DataFrame(np.random.random(size=(10, 2)))
dataframe.sample(20)