RPy2
을 통해 R에서 randomForest
라이브러리를 사용하고 있습니다. caret
predict
메서드를 사용하여 계산 된 값을 다시 전달하고 원래 pandas
데이터 프레임에 조인하고 싶습니다. 아래 예를 참조하십시오.Rpy2 및 Pandas : 예측 결과를 팬더 데이터 프레임에 합치십시오
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
a a b b b a a a a b a a a a a b a a a a
Levels: a b
를 반환하지만 어떻게 원래의 값으로 withheld
dataframe이를 join
또는 비교할 수
import pandas as pd
import numpy as np
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
r = robjects.r
r.library("randomForest")
r.library("caret")
df = pd.DataFrame(data=np.random.rand(100, 10), columns=["a{}".format(i) for i in range(10)])
df["b"] = ['a' if x < 0.5 else 'b' for x in np.random.sample(size=100)]
train = df.ix[df.a0 < .75]
withheld = df.ix[df.a0 >= .75]
rf = r.randomForest(robjects.Formula('b ~ .'), data=train)
pr = r.predict(rf, withheld)
print pr.rx()
?
import pandas.rpy.common as com
com.convert_robj(pr)
을하지만이 키가 문자열 사전을 반환
나는이 시도했다. 나는 withheld.reset_index()
의 주위에 일이 있고 그 후에 dict 열쇠를 정수로 개조하고 그 후에 2 개를 결합한다 그러나 간단한 방법이어야한다다는 것을 짐작한다!