2017-10-20 3 views
1

다른 열의 값의 평균을 다른 열의 조건부로 사용하는 새 열을 만들려고합니다.다른 열의 조건부 데이터 프레임에 열 만들기

pd.DataFrame({"A":[1, 2, 1, 2], 
     "B":[4, 6, 8, 12] 

나는 그것이 명확하지 않으면

pd.DataFrame({"A":[1, 2, 1, 2, 3], 
     "B":[4, 6, 8, 12, 4], 
     "C":[6,9,6,9,4]} 

될 것이라고 새 열 'C'를 만들려면, 내가 출력 열 B의 값의 평균을 할 때 열의 값 A는 동일합니다. 따라서 C = (4 + 6 + ...)/n 여기서 A == 1이고 C = (6 + 8 + ...)/n 여기서 A == 2 등 ...

나는 오전 이것에 대한 의사 코드를 생각하는 데 어려움이 있습니다. 코드 솔루션 외에도 논리적 인 설명이 있으면 감사하겠습니다.

+0

나는 논리를 따르지 않아서 미안해. n은 무엇입니까? – kbball

답변

1

이다하는 transform :

In [11]: df 
Out[11]: 
    A B 
0 1 4 
1 2 6 
2 1 8 
3 2 12 
4 3 4 

In [12]: df.groupby("A")["B"].transform('mean') 
Out[12]: 
0 6 
1 9 
2 6 
3 9 
4 4 
Name: B, dtype: int64 

In [13]: df["C"] = df.groupby("A")["B"].transform('mean') 

group by docs에서 참조하십시오.

관련 문제