1
가정하자 I는 다음 셋과 같다누계
df_dict = ({'unit' : [1, 1, 1, 2, 2, 2], 'cat' : [1, 2, 3, 1, 2, 4],
'count' : [8, 3, 2, 2, 8, 7] })
df = pd.DataFrame(df_dict)
df.set_index('unit', inplace = True)
가지고
cat count
unit
1 1 8
1 2 3
1 3 2
2 1 2
2 2 8
2 4 7
카운트 주파수 제공을하는 유닛 관찰 다른 카테고리. 내가 얻고 자하는 것은 각 단위에 대한 네 가지 범주의 누적 빈도입니다.
[8/13, 11/13, 13/13, 13/13]
부 2 : 2
따라서 유닛으로부터 누락되었음을 카테고리 4 (1) 및 카테고리 3에서 누락 참고 최종 결과는 부 1
것
[2/17, 10/17, 10/17, 17/17]
나는 groupby
및 cumsum
에 누적 합계를 얻기 위해,하지만 장치 (1)는, 예를 들어, 누락 된 범주에 대한 값이없는 방법을 알고 4.
감사합니다.
감사합니다. 정말 멋진 솔루션입니다! 나는 여전히 인덱스와 관련된 값에 대해 머리 글자를 써야한다 ... 빠른 질문 하나 :'cumsum(). values'에서'.values '를 사용해야하는 이유는 무엇입니까? 나는 그 일을하는 것을 얻지 못한다. – cd98
'lambda' 함수 안에서'x'는 DataFrame입니다. 'x [ 'count']. cumsum()'은 시리즈입니다. 그 시리즈에는'x [ 'cat']'로 대체하고 싶은 인덱스가 있습니다. 원래 시리즈에 중복이 있기 때문에'pd.Series (x [ 'count']. cumsum(), index = x [ 'cat'])''를 사용하면 'ValueError : can not reindex ...'예외가 발생합니다. 그 인덱스에있는 엔트리 - 이전 인덱스에서 새 인덱스로 매핑하는 방법이 불분명합니다. 모든 시리즈에는 기본 데이터를 NumPy 배열로 반환하는'values' 속성이 있습니다. 우리가 신경 쓰는 것은 원래 색인이 아닌 데이터입니다. 따라서'.values'를 사용하여 데이터를 선택했습니다. – unutbu
감사합니다. – cd98