您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 以相同的方式对两个pandas数据帧进行采样

5b51 2022/1/14 8:23:12 python 字数 2439 阅读 566 来源 www.jb51.cc/python

我正在进行具有两个数据帧的机器学习计算 – 一个用于因子,另一个用于目标值.我必须将它们分成训练和测试部分.在我看来,我找到了方法,但我正在寻找更优雅的解决方案.这是我的代码: import pandas as pd import numpy as np import random df_source = pd.DataFrame(np.random.randn(5,2),index = ran

概述

import pandas as pd
import numpy as np
import random

df_source = pd.DataFrame(np.random.randn(5,2),index = range(0,10,columns=list('AB'))
df_target = pd.DataFrame(np.random.randn(5,columns=list('CD'))

rows = np.asarray(random.sample(range(0,len(df_source)),2))

df_source_train = df_source.iloc[rows]
df_source_test = df_source[~df_source.index.isin(df_source_train.index)]
df_target_train = df_target.iloc[rows]
df_target_test = df_target[~df_target.index.isin(df_target_train.index)]

print('rows')
print(rows)
print('source')
print(df_source)
print('source train')
print(df_source_train)
print('source_test')
print(df_source_test)

—-编辑 – unutbu解决方案(midified)—

np.random.seed(2013)
percentile = .6
rows = np.random.binomial(1,percentile,size=len(df_source)).astype(bool)

df_source_train = df_source[rows]
df_source_test = df_source[~rows]
df_target_train = df_target[rows]
df_target_test = df_target[~rows]
import pandas as pd
import numpy as np
import random
np.random.seed(2013)

df_source = pd.DataFrame(
    np.random.randn(5,index=range(0,columns=list('AB'))

rows = np.random.randint(2,size=len(df_source)).astype('bool')

df_source_train = df_source[rows]
df_source_test = df_source[~rows]

print(rows)
# [ True  True False  True False]

# if for some reason you need the index values of where `rows` is True
print(np.where(rows))  
# (array([0,1,3]),)

print(df_source)
#           A         B
# 0  0.279545  0.107474
# 2  0.651458 -1.516999
# 4 -1.320541  0.679631
# 6  0.833612  0.492572
# 8  1.555721  1.741279

print(df_source_train)
#           A         B
# 0  0.279545  0.107474
# 2  0.651458 -1.516999
# 6  0.833612  0.492572

print(df_source_test)
#           A         B
# 4 -1.320541  0.679631
# 8  1.555721  1.741279

总结

以上是编程之家为你收集整理的python – 以相同的方式对两个pandas数据帧进行采样全部内容,希望文章能够帮你解决python – 以相同的方式对两个pandas数据帧进行采样所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶