사용자 정의 함수를 사용하는 Groupby Pandas

우디 프라이드

함수를 그룹 키로 전달하면 반환 값이 그룹 이름으로 사용되는 인덱스 값당 한 번씩 함수가 호출된다는 것을 이해합니다. 내가 알아낼 수없는 것은 열 값에 대해 함수를 호출하는 방법입니다.

그래서 이렇게 할 수 있습니다.

people = pd.DataFrame(np.random.randn(5, 5), 
                      columns=['a', 'b', 'c', 'd', 'e'],
                      index=['Joe', 'Steve', 'Wes', 'Jim', 'Travis'])
def GroupFunc(x):
    if len(x) > 3:
        return 'Group1'
    else:
        return 'Group2'

people.groupby(GroupFunc).sum()

이렇게하면 데이터가 두 그룹으로 나뉘는데, 그 중 하나는 길이가 3 이하인 인덱스 값이 있고 다른 하나는 길이가 3 이상인 그룹입니다. 그러나 열 값 중 하나를 어떻게 전달할 수 있습니까? 예를 들어 각 인덱스 포인트의 d 열 값이 1보다 크면 다음을 수행 할 수 있습니다.

people.groupby(people.a > 1).sum()

하지만 나중에 참조 할 수 있도록 사용자 정의 함수에서이 작업을 수행하는 방법을 알고 싶습니다.

다음과 같은 것 :

def GroupColFunc(x):
if x > 1:
    return 'Group1'
else:
    return 'Group2'

하지만 이것을 어떻게 부를까요? 나는 시도했다

people.groupby(GroupColFunc(people.a))

및 유사한 변형이지만 작동하지 않습니다.

함수에 열 값을 어떻게 전달합니까? 예를 들어 people.a> people.b 여부를 그룹화하기 위해 여러 열 값을 어떻게 전달합니까?

로만 페 카르

> 1로 그룹화하려면 다음과 같이 함수를 정의 할 수 있습니다.

>>> def GroupColFunc(df, ind, col):
...     if df[col].loc[ind] > 1:
...         return 'Group1'
...     else:
...         return 'Group2'
... 

그런 다음

>>> people.groupby(lambda x: GroupColFunc(people, x, 'a')).sum()
               a         b         c         d        e
Group2 -2.384614 -0.762208  3.359299 -1.574938 -2.65963

또는 익명 함수로만 수행 할 수 있습니다.

>>> people.groupby(lambda x: 'Group1' if people['b'].loc[x] > people['a'].loc[x] else 'Group2').sum()
               a         b         c         d         e
Group1 -3.280319 -0.007196  1.525356  0.324154 -1.002439
Group2  0.895705 -0.755012  1.833943 -1.899092 -1.657191

문서 에서 언급했듯이 레이블-> 그룹 이름 매핑을 제공하는 Series를 전달하여 그룹화 할 수도 있습니다.

>>> mapping = np.where(people['b'] > people['a'], 'Group1', 'Group2')
>>> mapping
Joe       Group2
Steve     Group1
Wes       Group2
Jim       Group1
Travis    Group1
dtype: string48
>>> people.groupby(mapping).sum()
               a         b         c         d         e
Group1 -3.280319 -0.007196  1.525356  0.324154 -1.002439
Group2  0.895705 -0.755012  1.833943 -1.899092 -1.657191

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Pandas Groupby에 사용자 지정 롤링 함수를 적용하는 방법은 무엇입니까?

분류에서Dev

Pandas는 groupby를 사용하여 groupby 변수의 각 값에 대해 다른 함수를 적용합니다.

분류에서Dev

Pandas는 groupby를 사용하여 groupby 변수의 각 값에 대해 다른 함수를 적용합니다.

분류에서Dev

사용자 정의 함수에서 두 개의 DataFrame으로 Pandas GroupBy Define

분류에서Dev

Python Pandas Dataframe : 열 병합을위한 groupby의 사용자 정의 함수

분류에서Dev

Groupby 및 정의 된 함수 적용-Pandas

분류에서Dev

Pandas에서 작동하지 않는 사용자 정의 함수

분류에서Dev

Pandas를 사용하여 groupby 함수의 누적 시간을 계산하는 방법은 무엇입니까?

분류에서Dev

집계를 사용하는 Pandas Groupby

분류에서Dev

dict를 사용하는 Pandas Groupby

분류에서Dev

dict를 사용하는 Pandas Groupby

분류에서Dev

Pandas를 사용하는 Groupby df 열

분류에서Dev

목록을 사용하여 pandas 시리즈로 사용자 정의 함수를 변경하는 방법

분류에서Dev

Pandas Dataframes에서 .apply를 사용하는 동안 사용자 지정 함수의 성능

분류에서Dev

Pandas Groupby 사용자 지정 그룹

분류에서Dev

Cython을 사용하여 사용자 지정 Pandas 집계 함수 정의

분류에서Dev

Python 정렬 함수를 사용하여 Pandas DataFrame의 값 정렬

분류에서Dev

Pandas : groupby를 사용하여 특정 값을 집계하는 동안 합계

분류에서Dev

[groupby]를 사용할 때 중간 열의 Python Pandas 정렬

분류에서Dev

Pandas는 loops / lambda.apply ()를 사용하는 대신 사용자 정의 함수에서 Numpy 벡터화를 사용합니다.

분류에서Dev

사용자 정의 행 조작을 수행하는 Pandas 변환 함수

분류에서Dev

Pandas-사용자 지정 함수를 사용하여 두 행 비교

분류에서Dev

사용자 정의 비교 함수를 사용하여 여러 열로 Pandas 데이터 프레임 정렬

분류에서Dev

일련의 하위 문자열을 사용하는 DataFrame의 pandas groupby

분류에서Dev

사용자 지정 함수를 사용하여 Pandas에서 시리즈의 모든 항목에 대해 반복

분류에서Dev

Pandas df에 사용자 정의 함수 적용

분류에서Dev

dict.update ()를 사용한 Pandas Groupby 함수

분류에서Dev

Pandas : groupby 및 함수를 사용한 DataFrame 필터링

분류에서Dev

한 사용자 정의 모듈의 함수를 다른 사용자 정의 모듈에 사용하는 방법

Related 관련 기사

  1. 1

    Pandas Groupby에 사용자 지정 롤링 함수를 적용하는 방법은 무엇입니까?

  2. 2

    Pandas는 groupby를 사용하여 groupby 변수의 각 값에 대해 다른 함수를 적용합니다.

  3. 3

    Pandas는 groupby를 사용하여 groupby 변수의 각 값에 대해 다른 함수를 적용합니다.

  4. 4

    사용자 정의 함수에서 두 개의 DataFrame으로 Pandas GroupBy Define

  5. 5

    Python Pandas Dataframe : 열 병합을위한 groupby의 사용자 정의 함수

  6. 6

    Groupby 및 정의 된 함수 적용-Pandas

  7. 7

    Pandas에서 작동하지 않는 사용자 정의 함수

  8. 8

    Pandas를 사용하여 groupby 함수의 누적 시간을 계산하는 방법은 무엇입니까?

  9. 9

    집계를 사용하는 Pandas Groupby

  10. 10

    dict를 사용하는 Pandas Groupby

  11. 11

    dict를 사용하는 Pandas Groupby

  12. 12

    Pandas를 사용하는 Groupby df 열

  13. 13

    목록을 사용하여 pandas 시리즈로 사용자 정의 함수를 변경하는 방법

  14. 14

    Pandas Dataframes에서 .apply를 사용하는 동안 사용자 지정 함수의 성능

  15. 15

    Pandas Groupby 사용자 지정 그룹

  16. 16

    Cython을 사용하여 사용자 지정 Pandas 집계 함수 정의

  17. 17

    Python 정렬 함수를 사용하여 Pandas DataFrame의 값 정렬

  18. 18

    Pandas : groupby를 사용하여 특정 값을 집계하는 동안 합계

  19. 19

    [groupby]를 사용할 때 중간 열의 Python Pandas 정렬

  20. 20

    Pandas는 loops / lambda.apply ()를 사용하는 대신 사용자 정의 함수에서 Numpy 벡터화를 사용합니다.

  21. 21

    사용자 정의 행 조작을 수행하는 Pandas 변환 함수

  22. 22

    Pandas-사용자 지정 함수를 사용하여 두 행 비교

  23. 23

    사용자 정의 비교 함수를 사용하여 여러 열로 Pandas 데이터 프레임 정렬

  24. 24

    일련의 하위 문자열을 사용하는 DataFrame의 pandas groupby

  25. 25

    사용자 지정 함수를 사용하여 Pandas에서 시리즈의 모든 항목에 대해 반복

  26. 26

    Pandas df에 사용자 정의 함수 적용

  27. 27

    dict.update ()를 사용한 Pandas Groupby 함수

  28. 28

    Pandas : groupby 및 함수를 사용한 DataFrame 필터링

  29. 29

    한 사용자 정의 모듈의 함수를 다른 사용자 정의 모듈에 사용하는 방법

뜨겁다태그

보관