从 pandas 数据帧中提取子集确保不重叠?

JCh*_*hat 4 python datetime sampling dataframe pandas

假设我有 2 个df具有297232 x 122维度和df_raw维度的Pandas 数据框840380x122df已经是 的子集df_raw。两个数据帧的索引均为DateTime。我想对70%来自 和df30%值进行采样df_raw(如果需要,可以随机采样),同时确保采样的数据帧子集在索引方面没有重叠。

更准确地说,df_subset将从70%中随机选择值df, 并从 中随机df_raw_subset选择30%df_raw,但df_subsetdf_raw_subset不应该包含采样行的重叠,即它们应该具有唯一的DateTime索引。

WeN*_*Ben 5

因此,首先我们sample从 df 开始,因为尺寸很小,当我们将来从另一个更大的 df 中删除它时,我们不会遇到问题:没有足够的数据点sample

df_sub=df.sample(frac=0.7, replace=False)
Run Code Online (Sandbox Code Playgroud)

然后我们将索引df_raw放入df_sub

n=int(len(df_raw)*0.3)
df_raw_sub=df_raw.drop(df_sub.index).sample(n,replace=False)
Run Code Online (Sandbox Code Playgroud)