我有一个数据帧,我需要将其采样为两个,其中一个样本不应包含另一个样本。我可以运行两个示例操作,但这并不能保证相同的
df.sample(frac=0.8)
df.sample(frac=0.2)
我也试过了下面的内容。但这会引发错误ValueError: cannot compute isin with a duplicate axis.
df1 = df.sample(frac=0.8)
df[~df.isin(df1).all(1)]
可以做些什么来实现分裂
df = pd.DataFrame(np.arange(200).reshape(100, 2), columns=list('AB'))
n_80pct = df.shape[0] // 5 * 4
df_sampled = df.sample(frac=1)
df_80 = df_sampled.iloc[:n_80pct]
df_20 = df_sampled.iloc[n_80pct:]