按日期或某个分组变量循环取数,同时考虑是否数量足够

该代码段涉及从数据帧`df1`中根据`target1`和`target0`筛选子集。首先,分别创建了两个空的数据帧`df_1`和`df_0`。接着,遍历`df1`中所有不重复的日期,对于每个日期,如果`target1`子集小于1000条记录,则选取所有记录;若大于1000条,随机抽取1000条。同样地,对于`target0`子集,如果记录数少于3000条,选取所有记录,否则抽样3000条。最后,将`df_1`和`df_0`合并成新的`df1`数据帧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

df1_1 = df1[df1.target1]
df1_0 = df1[df1.target
0]

df_1 = pd.DataFrame()
df_0 = pd.DataFrame()
for dt in df1.date.unique():
qx_1 = df1_1[df1_1.date==dt]
if len(qx_1)<1000:
qx1 = qx_1[qx_1.date == dt]
else:
qx1 = qx_1[qx_1.date == dt].sample(n=1000)
df_1 = pd.concat([df_1,qx1],axis=0)

for dt in df1.date.unique():
qx_0 = df1_0[df1_0.date==dt]
if len(qx_0)<3000:
qx0 = qx_0[qx_0.date == dt]
else:
qx0 = qx_0[qx_0.date == dt].sample(n=3000)
df_0 = pd.concat([df_0,qx0],axis=0)

df1 = pd.concat([df_1,df_0],axis=0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值