나는 팬더 사용하여 변수 제거 알고리즘을 구현하기 위해 노력하고 있습니다. 사람 합 아웃 단계에 익숙해있는 경우, A, B는, (C)는 (반드시 부울 값)와 F는 이러한 변수의 값이 소정의 일부 기능 (요소)는 변수 테이블을 지정.
a b c f
0 True True True 0.015
1 True True False 0.035
2 True False True 0.270
3 True False False 0.180
4 False True True 0.030
5 False True False 0.070
6 False False True 0.240
7 False False False 0.160
내가 합계를 f
경우 모든 행의들 (a,c)=(T,T)
도, f
어디 모든 행의이야 (a,c)=(T,F)
, (F,T)
, (F,F)
. 결과의 모습처럼
a c f
0 True True 0.285
1 True False 0.215
2 False True 0.27
3 False False 0.23
따라서 이름 "합 출력 ( b
)".
내가 얻을 수있는 가장 가까운 사용하고 pd.pivot_table(df, index=df.index.values, columns=['a', 'c'], values='f', aggfunc=np.sum, fill_value=0).sum()
있는 수익을
a c
False False xxx
True xxx
True False xxx
True xxx
또 unstack
우리에게 제공 할 수 있습니다
c False True
a
False xxx xxx
True xxx xxx
이는 내가 원하지 않는 것을 아직도있다.
내가 합 아웃에 임의의 많은 변수, 임의로 많은 변수를 가질 수 있습니다 (또는 계속)합니다. 이 경우에 내가 할 수있는 그래서 비록 pd.pivot_table(df, index=<some of the var left, e.g. a>, columns=<other var left, e.g. c>, values='f', aggfunc=np.sum)
같은 결과를 얻을, 다른 경우에는 하나의 변수가 왼쪽 또는 너무 많은있을 수 있습니다.
변수는 부울 유형되지 않을 수도 있습니다,하지만 그들은 유한 및 개별 도메인이 있어야합니다.
또한 여기 내 인덱스는 의미 인덱스 더미 참고. "원래 인덱스를 유지"에 의하여 나는 그들을 떠나 단지 의미 더미,하지만 어떻게 든 단지를 따라 집계 axis=0
.
사람이 일을 할 수있는 데이터 구조와 같은 더 나은 다차원 배열을 제안 할 수있는 경우 또한, 그것은 또한 OK입니다.
이 같은 GROUPBY 및 AGG 기능을 사용할 수 있습니다.
df.groupby(['a','c'])['f'].agg('sum').reset_index()