pandas - 按列过滤熊猫并随机化
问题描述
嗨我有熊猫数据框
case val1 val2 val3
1 a 12 13
1 a 112 413
2 a 12 113
2 a 12 113
2 a 112 13
3 a 112 163
3 a 512 513
3 a 122 135
3 a 912 513
现在需要随机拆分它以进行训练、测试、验证,但基于列号案例不能在同一个文件夹 中,所以最后我们有 3 个熊猫数组
解决方案
最后我确实通过循环解决了
data = {'case':['case1', 'case1', 'case2', 'case2','case3', 'case3','case3', 'case3','case4', 'case4', 'case4'],
'Name':['Tom', 'nick', 'krish', 'jack','woo', 'foo', 'bert', 'sia', 'well', 'done', 'today'],
'Age':[ 20, 21, 19, 18 , 17, 16, 15, 25 , 1, 11 , 12]}
df = pd.DataFrame(data)
col = 'case'
sample =[]
variants_data = list(df[col].unique())
print(variants_data)
import random
random_var = variants_data
random.shuffle(random_var)
for casetype in random_var:
print('--------------')
dfSel = df[df[col] == casetype]
print(dfSel)
- > ====== so results
>
> original table case Name Age 0 case1 Tom 20 1 case1 nick 21
> 2 case2 krish 19 3 case2 jack 18 4 case3 woo 17 5 case3 foo 16
> 6 case3 bert 15 7 case3 sia 25 8 case4 well 1 9 case4 done 11
> 10 case4 today 12
>
> ['case1', 'case2', 'case3', 'case4'] ['case1', 'case4', 'case3',
> 'case2'] ['case1', 'case4', 'case3', 'case2']
>
> out table
> --------------
> case Name Age 0 case1 Tom 20 1 case1 nick 21
> --------------
> case Name Age 8 case4 well 1 9 case4 done 11 10 case4 today 12
> --------------
> case Name Age 4 case3 woo 17 5 case3 foo 16 6 case3 bert 15 7 case3 sia 25
> --------------
> case Name Age 2 case2 krish 19
推荐阅读
- r - ggsurvplot 在 Rshiny 中不起作用
- c - 使用指针存储字符串
- sql - BigQuery 中的潜在客户和分析功能
- fortran - 错误 #6451:在此上下文中需要一个虚拟参数名称
- java - 如何在运行时在方法中自动装配类
- java - 有没有办法像处理主报告一样填写子报告?(贾斯珀报告)
- windows-installer - Electron windows installer 需要在安装之间调用批处理文件,完成后继续安装
- php - 将 .env 参数替换为文件的内容
- python - openstack 无法从 API 检索身份验证令牌
- jquery - 如何在 jquery 函数中更改 this.variable?