나는 Pandas를 처음 사용합니다
내 DataFrame :
df
A B C 1 2 3 4 5 6 7 8 9
5 2 4 True False False True False True False True False
2 2 1 True True False False False True False True False
5 4 7 False False True False True True False True True
4 4 1 False True False False False True False True True
2 0 8 False False True False True True False True True
내 목표:
cateogory 당 합계 계산하기 1-9
과 열을 A
, B
, C
.
그래서 이런 질문에 답할 수있었습니다.
무엇이다 sum
컬럼의 A
열이 곳 값은 1
이다 True
는 무엇 sum
의 C
열 곳 5
입니다 True
.
실제로는 약 50 개의 범주 1-50
가 있으며 이러한 종류의 선을 50 번 사용할 필요없이 이러한 합계를 계산하는 현명한 방법이 있는지 알고 싶습니다.
df['Sum of A where 1 is True'] = df.A.where(df.1)).sum()
등등.
제안 해 주셔서 감사합니다.
추출 열에 대해 s DataFrame.melt
로 필터링 한 다음 집계와 True
함께 사용할 수 있습니다 .DataFrame.pop
sum
df = (df.melt(['A','B','C'], var_name='Type', value_name='mask')
.loc[lambda x: x.pop('mask')]
.groupby('Type')
.sum())
print (df)
A B C
Type
1 7 4 5
2 6 6 2
3 7 4 15
4 5 2 4
5 7 4 15
6 18 12 21
8 18 12 21
9 11 8 16
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다