pandas - 基于列中的值的示例 Pandas 数据框
问题描述
我有一个大数据框,我想根据target
列值上的值进行采样,它是二进制的:0/1
我想在“目标”列中提取相同数量的具有 0 和 1 的行。我正在考虑使用 pandas 采样函数,但不确定如何根据target
列从两个类中声明我想要的相同数量的样本用于数据帧。
我正在考虑使用这样的东西:
df.sample(n=10000, weights='target', random_state=1)
不知道如何编辑它以获得 10k 记录,列中有 5k1's
和 5k 。任何帮助表示赞赏!0's
target
解决方案
您可以按目标对数据进行分组,然后进行采样,
df = pd.DataFrame({'col':np.random.randn(12000), 'target':np.random.randint(low = 0, high = 2, size=12000)})
new_df = df.groupby('target').apply(lambda x: x.sample(n=5000)).reset_index(drop = True)
new_df.target.value_counts()
1 5000
0 5000
推荐阅读
- linux - 以表格格式格式化 mailx 电子邮件的输出
- swift - 如何从 SwiftUI 视图中更改变量?
- python - 类内的递归函数调用似乎返回多个“自我”属性?
- image - 选择单元格旁边的特定行和列
- mysql - 如何定义“用户”变量,以便他们从我的 MySQL 表中读取数据?
- firebase - 如何重新验证 Google 登录用户?
- python - AttributeError:“NoneType”对象在 Tensorflow 中没有属性“设备”
- android - 如何使 onCreateOptionMenu 像 onResume 一样工作
- flutter - 如何从firebase文档快照中获取子集合
- r - R中宽限月的EMI计算