Pandas에서 사용자 지정 집계 함수를 사용하여 데이터 프레임에 새 열을 만듭니다.

모하마드 호세인 에슈 라기

다음과 같은 팬더 데이터 프레임이 있다고 가정합니다.

         Date  Type  Rate  Load
0  2017-01-02  Rain    23    10
1  2017-01-02   Dry    30    15
2  2017-01-02  Rain    32    20
....

또한 cost(Type, Rate)실수를 반환 하는 비용 함수가 있습니다.

각 행에 대해 Load동일 Date하고 cost()주어진 행 보다 적은 다른 모든 행의 합계를 계산하는 새 열을 어떻게 만들 수 있습니까 ?

예를 들어 비용 함수가 다음과 같은 경우 :

def cost(Type, Rate):
    if Type=='Rain':
        return Rate/12
    else:
        return Rate/17

출력은 다음과 같습니다.

         Date  Type  Rate  Load  Output
0  2017-01-02  Rain    23    10   15           
1  2017-01-02   Dry    30    15   0          
2  2017-01-02  Rain    32    20   15+10=25    
....

최신 정보. 현재 생각하고있는 현재 방법은 cost먼저 각 행의 를 계산 하는 새 열을 만들고 다음 단계에서 같은 날짜를 가진 각 행의 모든 ​​레코드를 합산하는 새 열을 만드는 것입니다. 비용이 적게 듭니다. 그러나 둘 다 결합하는 더 빠른 방법이 있습니까?

MrNobody33

다음과 df.to_records()같이 시도해 볼 수 있습니다 .

print(df)
cost= lambda Type, Rate:  Rate/12 if Type=='Rain' else Rate/17

l=[sum([j[4] for j in df.to_records() if list(j)[1]==list(i)[1] and list(i)!=list(j) and cost(list(j)[2],list(j)[3])<cost(list(i)[2],list(i)[3])]) for i in df.to_records()]
df['Output']=l
print(df)

산출:

df:
        Date  Type  Rate  Load
0 2017-01-01  Rain    23    10
1 2017-01-01   Dry    22    10
2 2017-01-01  Rain    25    10
3 2017-01-02   Dry    30    15
4 2017-01-02  Rain    32    20

df with output column:
        Date  Type  Rate  Load  Output
0 2017-01-01  Rain    23    10      10
1 2017-01-01   Dry    22    10       0
2 2017-01-01  Rain    25    10      20
3 2017-01-02   Dry    30    15       0
4 2017-01-02  Rain    32    20      15

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 데이터 프레임의 행 번호를 사용하여 기존 데이터 프레임에서 새 pandas 데이터 프레임을 만듭니다.

분류에서Dev

팬더를 사용하여 두 열을 정렬하고 데이터 프레임에서 정렬 된 값에 대한 새 열을 만듭니다.

분류에서Dev

R의 데이터 프레임 행에 Reduce 함수를 적용하여 새 열을 만듭니다.

분류에서Dev

Python 정규식을 사용하여 문자열 열을 분할하여 Python에서 데이터 프레임의 새 열을 만듭니다.

분류에서Dev

데이터 프레임의 각 하위 집합에 사용자 지정 함수를 적용하고 데이터 프레임을 생성합니다.

분류에서Dev

사용자 지정 함수를 사용하여 기존 데이터 프레임 내에서 새 이진 변수를 만드는 방법은 무엇입니까?

분류에서Dev

Pandas 중첩 된 데이터 프레임 열의 합계를 사용하여 열을 만듭니다.

분류에서Dev

R 데이터 프레임은 across / all_of / mutate_if를 사용하여 기존 열에서 여러 개의 새 열을 만듭니다.

분류에서Dev

Python Pandas 데이터 프레임은 다른 열에서 빼기를 포함하는 새 열을 만듭니다.

분류에서Dev

Python은 ExcelWriter를 사용하여 함수에서 데이터 프레임을 만듭니다.

분류에서Dev

rnorm 함수를 사용하여 데이터 프레임에서 다른 열 기반 새 열 만들기

분류에서Dev

Pandas 데이터 프레임의 다른 열에 다른 집계 함수를 적용하는 Pythonic 방법? 열 이름을 효율적으로 지정하려면?

분류에서Dev

버퍼를 사용하여 raster :: extract에 속성 정보가있는 데이터 프레임을 만듭니다.

분류에서Dev

다른 연산자를 사용하여 여러 열에 걸쳐 데이터 프레임의 행 집계

분류에서Dev

새 '점수'열을 집계하기 위해 데이터 프레임의 특정 열에 가중치를 적용하려면 어떻게해야합니까?

분류에서Dev

Pandas 데이터 프레임에서 별도의 count 열로 반복되는 출발지 및 목적지 값을 집계하여 새 데이터 프레임을 만듭니다.

분류에서Dev

열의 숫자 (영)를 제거하고 데이터 프레임에 새 열을 만듭니다.

분류에서Dev

변환을 사용하여 특정 값을 계산하고 데이터 프레임에서 결과를 집계

분류에서Dev

함수에서 Dplyr를 사용하여 새 데이터 프레임 만들기

분류에서Dev

R에서 데이터 프레임 데이터를 사용하여 문자열 섹션을 지 웁니다.

분류에서Dev

Pandas의 지정된 사전에 특정 계산을 수행하여 새 열을 만듭니다.

분류에서Dev

Pandas의 지정된 사전에 특정 계산을 수행하여 새 열을 만듭니다.

분류에서Dev

Pandas의 전체 데이터 프레임에서 특정 문자열의 수를 계산하고 새 열에 해당 값을 추가합니다.

분류에서Dev

다른 프레임을 부분 화하고 접미사를 추가하여 루프에서 여러 새 데이터 프레임을 만듭니다.

분류에서Dev

여러 열에 기능 적용을 사용하여 다른 열의 값을 기반으로 데이터 프레임에 새 열을 만듭니다.

분류에서Dev

벡터화 된 입력을 사용하여 데이터 프레임에 새 열을 만드는 함수를 적용합니다.

분류에서Dev

Python Pandas를 사용하여 데이터 프레임 열을 그룹화하고 Excel 시트에서 새 열을 계산하는 데 사용

분류에서Dev

데이터 프레임에서 열을 추출하고 정규식을 사용하여 새 열 만들기

분류에서Dev

Pandas 데이터 프레임을 사용하여 집계 후 값을 정렬 할 수 없습니다.

Related 관련 기사

  1. 1

    다른 데이터 프레임의 행 번호를 사용하여 기존 데이터 프레임에서 새 pandas 데이터 프레임을 만듭니다.

  2. 2

    팬더를 사용하여 두 열을 정렬하고 데이터 프레임에서 정렬 된 값에 대한 새 열을 만듭니다.

  3. 3

    R의 데이터 프레임 행에 Reduce 함수를 적용하여 새 열을 만듭니다.

  4. 4

    Python 정규식을 사용하여 문자열 열을 분할하여 Python에서 데이터 프레임의 새 열을 만듭니다.

  5. 5

    데이터 프레임의 각 하위 집합에 사용자 지정 함수를 적용하고 데이터 프레임을 생성합니다.

  6. 6

    사용자 지정 함수를 사용하여 기존 데이터 프레임 내에서 새 이진 변수를 만드는 방법은 무엇입니까?

  7. 7

    Pandas 중첩 된 데이터 프레임 열의 합계를 사용하여 열을 만듭니다.

  8. 8

    R 데이터 프레임은 across / all_of / mutate_if를 사용하여 기존 열에서 여러 개의 새 열을 만듭니다.

  9. 9

    Python Pandas 데이터 프레임은 다른 열에서 빼기를 포함하는 새 열을 만듭니다.

  10. 10

    Python은 ExcelWriter를 사용하여 함수에서 데이터 프레임을 만듭니다.

  11. 11

    rnorm 함수를 사용하여 데이터 프레임에서 다른 열 기반 새 열 만들기

  12. 12

    Pandas 데이터 프레임의 다른 열에 다른 집계 함수를 적용하는 Pythonic 방법? 열 이름을 효율적으로 지정하려면?

  13. 13

    버퍼를 사용하여 raster :: extract에 속성 정보가있는 데이터 프레임을 만듭니다.

  14. 14

    다른 연산자를 사용하여 여러 열에 걸쳐 데이터 프레임의 행 집계

  15. 15

    새 '점수'열을 집계하기 위해 데이터 프레임의 특정 열에 가중치를 적용하려면 어떻게해야합니까?

  16. 16

    Pandas 데이터 프레임에서 별도의 count 열로 반복되는 출발지 및 목적지 값을 집계하여 새 데이터 프레임을 만듭니다.

  17. 17

    열의 숫자 (영)를 제거하고 데이터 프레임에 새 열을 만듭니다.

  18. 18

    변환을 사용하여 특정 값을 계산하고 데이터 프레임에서 결과를 집계

  19. 19

    함수에서 Dplyr를 사용하여 새 데이터 프레임 만들기

  20. 20

    R에서 데이터 프레임 데이터를 사용하여 문자열 섹션을 지 웁니다.

  21. 21

    Pandas의 지정된 사전에 특정 계산을 수행하여 새 열을 만듭니다.

  22. 22

    Pandas의 지정된 사전에 특정 계산을 수행하여 새 열을 만듭니다.

  23. 23

    Pandas의 전체 데이터 프레임에서 특정 문자열의 수를 계산하고 새 열에 해당 값을 추가합니다.

  24. 24

    다른 프레임을 부분 화하고 접미사를 추가하여 루프에서 여러 새 데이터 프레임을 만듭니다.

  25. 25

    여러 열에 기능 적용을 사용하여 다른 열의 값을 기반으로 데이터 프레임에 새 열을 만듭니다.

  26. 26

    벡터화 된 입력을 사용하여 데이터 프레임에 새 열을 만드는 함수를 적용합니다.

  27. 27

    Python Pandas를 사용하여 데이터 프레임 열을 그룹화하고 Excel 시트에서 새 열을 계산하는 데 사용

  28. 28

    데이터 프레임에서 열을 추출하고 정규식을 사용하여 새 열 만들기

  29. 29

    Pandas 데이터 프레임을 사용하여 집계 후 값을 정렬 할 수 없습니다.

뜨겁다태그

보관