将火车数据的四分位数剪切应用于测试数据

时间:2018-12-13 21:36:27

标签: python pandas python-2.7 numpy scikit-learn

是否有任何现有的python函数从火车数据中获取四分位数并应用于测试数据。

import pandas as pd
import numpy as np

d = {'col1': np.arange(1, 100, 1)}
train = pd.DataFrame(data=d)

d1 = {'col1': np.arange(1, 200, 2)}
test = pd.DataFrame(data = d1)

我在训练和测试中都有大约1000列。可以使用pandas qcut函数使其具有可伸缩性,还是存在其他现有的sklearn函数?

我希望根据火车上的垃圾箱获得四分位数的测试数据(1、2、3或4)。

1 个答案:

答案 0 :(得分:1)

retbins训练集时可以使用pd.qcut参数。通过pd.cut将这些垃圾箱用于测试集,修改上下限,以便可以包含所有内容。

import numpy as np
import pandas as pd

_, bins = pd.qcut(train.col1, q=4, retbins=True)
bins = np.concatenate(([-np.inf], bins[1:-1], [np.inf]))

# How many elements in each bin for the test set?
test.groupby(pd.cut(test.col1, bins)).size()
#col1
#(-inf, 25.5]    13
#(25.5, 50.0]    12
#(50.0, 74.5]    12
#(74.5, inf]     63
#dtype: int64