2016-10-14 17 views
0

私はScikit for PythonのMachine Learningに使用するPandas dfを持っています。 列の1つは、連続したデータ(-10から+10まで変化する)である目標値です。連続したデータの分類

ターゲット列から、クラスあたりの行数が同じである5つのクラスを計算したいと思います。つまり、1000行ある場合、各クラスで約200個の5つのクラスに配布したい。

これまでのところ、私はPythonコードとは別にExcelでこれを行っていますが、データが大きくなるにつれて実用的ではありません。

私はパーセンタイルを計算してから、クラスを構築するためにいくつかのロジックを使用しました。

Pythonでこれを行う方法は?

+0

あなたが始めたことを知ることは役に立ちます。コードを試しましたか?あなたがしようとしていることの小さな例を投稿できますか? – alexbclay

+0

ありがとう!私は初心者なので、私が持っていたコードをあきらめました。 あなたの例はうまくいきましたが、自分のコードに入れたときに問題が発生しました。 2016年8月30日3.679853 2016年8月31日4.786245 2016年9月1日3.060758 ... 私はこの警告を得た実行します: 値 これは、DF(「ターゲット」)の一部であり、 df ['group'] [df ['target'] SpreadTrader

答えて

0
#create data 
import numpy as np 
import pandas as pd 
df = pd.DataFrame(20*np.random.rand(50, 1)-10, columns=['target']) 

#find quantiles 
quantiles = df['target'].quantile([.2, .4, .6, .8]) 
#labeling of groups 
df['group'] = 5 
df['group'][df['target'] < quantiles[.8]] = 4 
df['group'][df['target'] < quantiles[.6]] = 3  
df['group'][df['target'] < quantiles[.4]] = 2 
df['group'][df['target'] < quantiles[.2]] = 1 
関連する問題