[PYTHON] Pandas : DataFrame에서 집계 된 열 만들기
PYTHONPandas : DataFrame에서 집계 된 열 만들기
아래의 DataFrame을 예로 들면,
In [83]:
df = pd.DataFrame({'A':[1,1,2,2],'B':[1,2,1,2],'values':np.arange(10,30,5)})
df
Out[83]:
A B values
0 1 1 10
1 1 2 15
2 2 1 20
3 2 2 25
열 중 하나에서 일부 데이터 집계가 포함 된 새 열을 생성하는 간단한 방법은 무엇입니까?
예를 들어, A에서 항목에 대한 값을 합한 경우
In [84]:
df.groupby('A').sum()['values']
Out[84]:
A
1 25
2 45
Name: values
어떻게하면 되나요?
A B values sum_values_A
0 1 1 10 25
1 1 2 15 25
2 2 1 20 45
3 2 2 25 45
해결법
-
==============================
1.
In [20]: df = pd.DataFrame({'A':[1,1,2,2],'B':[1,2,1,2],'values':np.arange(10,30,5)}) In [21]: df Out[21]: A B values 0 1 1 10 1 1 2 15 2 2 1 20 3 2 2 25 In [22]: df['sum_values_A'] = df.groupby('A')['values'].transform(np.sum) In [23]: df Out[23]: A B values sum_values_A 0 1 1 10 25 1 1 2 15 25 2 2 1 20 45 3 2 2 25 45
-
==============================
2.조인을 사용하는 방법을 찾았습니다.
조인을 사용하는 방법을 찾았습니다.
In [101]: aggregated = df.groupby('A').sum()['values'] aggregated.name = 'sum_values_A' df.join(aggregated,on='A') Out[101]: A B values sum_values_A 0 1 1 10 25 1 1 2 15 25 2 2 1 20 45 3 2 2 25 45
누구나 쉽게 할 수있는 방법이 있습니까?
-
==============================
3.이것은 직접적인 것은 아니지만 매우 직관적이며 (다른 컬럼에서 새로운 컬럼을 작성하는 맵 사용) 많은 다른 경우에 적용될 수 있습니다.
이것은 직접적인 것은 아니지만 매우 직관적이며 (다른 컬럼에서 새로운 컬럼을 작성하는 맵 사용) 많은 다른 경우에 적용될 수 있습니다.
gb = df.groupby('A').sum()['values'] def getvalue(x): return gb[x] df['sum'] = df['A'].map(getvalue) df
-
==============================
4.
In [15]: def sum_col(df, col, new_col): ....: df[new_col] = df[col].sum() ....: return df In [16]: df.groupby("A").apply(sum_col, 'values', 'sum_values_A') Out[16]: A B values sum_values_A 0 1 1 10 25 1 1 2 15 25 2 2 1 20 45 3 2 2 25 45
from https://stackoverflow.com/questions/13256917/pandas-creating-aggregated-column-in-dataframe by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] imaplib을 사용하여 여러 첨부 파일 다운로드 (0) | 2018.11.01 |
---|---|
[PYTHON] PIL에서 Image.point () 메서드를 사용하여 픽셀 데이터 조작 (0) | 2018.11.01 |
[PYTHON] datetime 열을 가장 가까운 quarter 시간으로 반올림하는 방법 (0) | 2018.11.01 |
[PYTHON] multiprocessing.freeze_support () (0) | 2018.11.01 |
[PYTHON] 장고 개발 중 정적 미디어 검색 : MEDIA_ROOT를 사용하지 않는 이유는 무엇입니까? (0) | 2018.11.01 |