데이터 프레임에서 한 번에 여러 작업 수행

PeCaDe

다음 데이터를 사용하여 .groupbywith 를 사용하여 여러 계산을 현명하게 수행하려고합니다 pandas dataframe.

import numpy as np
import pandas as pd

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
                              'foo', 'bar', 'foo', 'foo'],
                       'B' : ['one', 'one', 'two', 'three',
                              'two', 'two', 'one', 'three'],
                       'C' : np.random.randn(8),
                       'D' : np.random.randn(8)})
In [2]: df
Out[2]: 
     A      B         C         D
0  foo    one  0.469112 -0.861849
1  bar    one -0.282863 -2.104569
2  foo    two -1.509059 -0.494929
3  bar  three -1.135632  1.071804
4  foo    two  1.212112  0.721555
5  bar    two -0.173215 -0.706771
6  foo    one  0.119209 -1.039575
7  foo  three -1.044236  0.271860

다음 출력을 더 짧고 빠른 방법으로 계산하고 싶습니다 .

 A    B          var1     var2      var3
bar  one      0.000000  0.000000  0.000000
     three    0.000000  0.000000  0.000000
     two      0.000000  0.000000  0.000000
foo  one      0.822999  19.705290 0.731207
     three    0.000000  0.000000  0.000000
     two      0.229541  5.509553  0.697971

현재로서는 별도의 방법으로 수행하는 방법을 알고 있습니다.

# lambda functions to apply
diff = lambda x: max(x)-min(x)
per = lambda x: (max(x)-min(x))/max(x)
ratio1 = lambda x: (max(x)-min(x))/ len(x)

# grouping using col C
df.groupby(['A','B'])['C'].apply(diff)   # var1

#Grouping using col D
df.groupby(['A','B'])['D'].apply(per)    # var2
df.groupby(['A','B'])['D'].apply(ratio1) #var3

편집 : 모든 결과를 데이터 프레임에 결합하는 방법을 알고 있지만이 세 가지 작업을 하나로 수행하는 방법이 궁금합니다. 성능이 낮기 때문에 모든 것을 한꺼번에하지 말라는 조언도 받아 들여집니다.

지파

다음을 사용할 수 있습니다 agg().

df.groupby(['A','B']).agg({'C': diff, 'D': [per, ratio1]})

이름 변경 부분 당신이 당신의 함수를 호출 할 수 있습니다 건너 뛰려면 var1, var2그리고 var3과에서 사용을 groupby.

var1 = lambda x: max(x)-min(x)
var2 = lambda x: (max(x)-min(x))/max(x)
var3 = lambda x: (max(x)-min(x))/ len(x)
df.groupby(['A','B']).agg({'C': var1, 'D': [var2, var3]})
df.columns = df.columns.droplevel()

편집하다

시도해보십시오 :

def var1(x): return max(x)-min(x)
def var2(x): return (max(x)-min(x))/max(x)
def var3(x): return (max(x)-min(x))/ len(x)

EDIT의 편집

이것은 pandas버전 에서 나를 위해 작동합니다 0.19.2.

import numpy as np
import pandas as pd

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
                              'foo', 'bar', 'foo', 'foo'],
                       'B' : ['one', 'one', 'two', 'three',
                              'two', 'two', 'one', 'three'],
                       'C' : np.random.randn(8),
                       'D' : np.random.randn(8)})

def var1(x): return max(x)-min(x)
def var2(x): return (max(x)-min(x))/max(x)
def var3(x): return (max(x)-min(x))/ len(x)

df = df.groupby(['A','B']).agg({'C': var1, 'D': [var2, var3]})

df.columns = df.columns.droplevel()

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

데이터 프레임의 여러 열에서 한 번에 한 행씩 combn 함수 실행

분류에서Dev

여러 데이터 프레임에 대한 llply 작업

분류에서Dev

여러 팬더 데이터 프레임에서 동일한 작업을 수행하는 올바른 방법은 무엇입니까?

분류에서Dev

Pandas에서 한 번에 여러 데이터 프레임 정렬

분류에서Dev

선택한 행에 대한 Spark 데이터 프레임 작업

분류에서Dev

요인에 따라 데이터 프레임에 대한 작업 수행

분류에서Dev

팬더가 병합하여 데이터 프레임에서 두 개의 열을 가져오고 열에 대한 작업을 수행합니다.

분류에서Dev

데이터 프레임 계수 열에 대한 작업

분류에서Dev

Pyspark 데이터 프레임에서 키 그룹에 대한 SCAN 작업을 수행하는 방법

분류에서Dev

Python Pandas 데이터 프레임 : 동일한 이름의 두 열에서 작업을 수행하는 방법

분류에서Dev

데이터 프레임에서 여러 행 수정

분류에서Dev

apply () 함수를 사용하여 R에서 데이터 프레임의 여러 열에 대한 요인 수준 업데이트

분류에서Dev

NaN 요소를 사용하여 Pandas 데이터 프레임에서 int 작업을 수행하는 방법

분류에서Dev

R 데이터 프레임-한 번에 여러 열 집계

분류에서Dev

루프의 여러 데이터 프레임에 대한 첫 번째 행을 열 이름으로 변환

분류에서Dev

동일한 이름의 여러 데이터 프레임 항목에서 임의의 행 선택

분류에서Dev

파이썬 멀티 스레딩, 어떻게 한 번에 여러 작업을 실행할 수 있습니까?

분류에서Dev

다른 데이터 프레임의 여러 행에서 조건부 데이터 프레임의 행에 대한 일치 항목을 찾는 방법

분류에서Dev

내 데이터 프레임의 단일 행에 대해 한 번에 여러 열 값 변경

분류에서Dev

여러 데이터에 대해 여러 작업을 수행합니다.

분류에서Dev

R-여러 데이터 세트에 동일한 작업을 수행합니다.

분류에서Dev

데이터 프레임을 날짜별로 서브 세트하고 R에서 여러 작업을 수행하는 방법은 무엇입니까?

분류에서Dev

python, pandas에서 다른 데이터 프레임의 여러 열을 사용하여 한 데이터 프레임의 행 선택

분류에서Dev

Pandas의 데이터 프레임에 대한 두 번째 행에서 시작하는 인덱스 설정

분류에서Dev

데이터 프레임에서 동일한 ID로 여러 행 내에서 값 가져 오기

분류에서Dev

Pandas : 여러 데이터 프레임 수정 (루프에서)

분류에서Dev

여러 행을 데이터 프레임 열의 한 행에 병합

분류에서Dev

pandas 데이터 프레임에서 ms 액세스로 여러 행을 업데이트하는 방법

분류에서Dev

Pyspark 데이터 프레임의 여러 열에서 함수 수행

Related 관련 기사

  1. 1

    데이터 프레임의 여러 열에서 한 번에 한 행씩 combn 함수 실행

  2. 2

    여러 데이터 프레임에 대한 llply 작업

  3. 3

    여러 팬더 데이터 프레임에서 동일한 작업을 수행하는 올바른 방법은 무엇입니까?

  4. 4

    Pandas에서 한 번에 여러 데이터 프레임 정렬

  5. 5

    선택한 행에 대한 Spark 데이터 프레임 작업

  6. 6

    요인에 따라 데이터 프레임에 대한 작업 수행

  7. 7

    팬더가 병합하여 데이터 프레임에서 두 개의 열을 가져오고 열에 대한 작업을 수행합니다.

  8. 8

    데이터 프레임 계수 열에 대한 작업

  9. 9

    Pyspark 데이터 프레임에서 키 그룹에 대한 SCAN 작업을 수행하는 방법

  10. 10

    Python Pandas 데이터 프레임 : 동일한 이름의 두 열에서 작업을 수행하는 방법

  11. 11

    데이터 프레임에서 여러 행 수정

  12. 12

    apply () 함수를 사용하여 R에서 데이터 프레임의 여러 열에 대한 요인 수준 업데이트

  13. 13

    NaN 요소를 사용하여 Pandas 데이터 프레임에서 int 작업을 수행하는 방법

  14. 14

    R 데이터 프레임-한 번에 여러 열 집계

  15. 15

    루프의 여러 데이터 프레임에 대한 첫 번째 행을 열 이름으로 변환

  16. 16

    동일한 이름의 여러 데이터 프레임 항목에서 임의의 행 선택

  17. 17

    파이썬 멀티 스레딩, 어떻게 한 번에 여러 작업을 실행할 수 있습니까?

  18. 18

    다른 데이터 프레임의 여러 행에서 조건부 데이터 프레임의 행에 대한 일치 항목을 찾는 방법

  19. 19

    내 데이터 프레임의 단일 행에 대해 한 번에 여러 열 값 변경

  20. 20

    여러 데이터에 대해 여러 작업을 수행합니다.

  21. 21

    R-여러 데이터 세트에 동일한 작업을 수행합니다.

  22. 22

    데이터 프레임을 날짜별로 서브 세트하고 R에서 여러 작업을 수행하는 방법은 무엇입니까?

  23. 23

    python, pandas에서 다른 데이터 프레임의 여러 열을 사용하여 한 데이터 프레임의 행 선택

  24. 24

    Pandas의 데이터 프레임에 대한 두 번째 행에서 시작하는 인덱스 설정

  25. 25

    데이터 프레임에서 동일한 ID로 여러 행 내에서 값 가져 오기

  26. 26

    Pandas : 여러 데이터 프레임 수정 (루프에서)

  27. 27

    여러 행을 데이터 프레임 열의 한 행에 병합

  28. 28

    pandas 데이터 프레임에서 ms 액세스로 여러 행을 업데이트하는 방법

  29. 29

    Pyspark 데이터 프레임의 여러 열에서 함수 수행

뜨겁다태그

보관