열의 최소 및 최대 행 찾기 및 다른 열의 값 빼기

tlk27

다음과 같은 데이터 프레임이 있습니다.

df = pd.DataFrame({'regionname' : [10022, 10128, 10022, 10022, 10128],
              'date' : ['1996-04-01', '2005-01-01', '2014-05-01', '2006-04-01', '2017-06-01', '2017-06-01'],
              'median_price': [np.nan, 257700.0, 407100.0, 500000.0, 750000.0, 325000 ]})

-----------------------------------------
Output:

regionname  date        median_price
0   10022   1996-04-01  NaN
1   10128   2014-05-01  407100.0
2   10022   2006-04-01  500000.0
3   10022   2017-06-01  750000.0
4   10128   2017-06-01  325000.0

모두 regionname데이터 세트의 우편 번호에 해당합니다. 도움이된다면 1996-04 년부터 2017-06 년까지의 모든 날짜에 내가 긴 형태로 녹인 중간 가격이 포함되어있는 데이터는 원래 와이드 형식이었습니다.

a로 최소 날짜를 찾고 median_price최대 날짜 (2017-06-01)에서 빼서 변화율을 조사하고 싶습니다. 모든 regionname(우편 번호)에는 최대 날짜에 대한 데이터가 있지만 최소 날짜는 다릅니다. 나는 여기에서 groupby를 제안했지만 그 게시물을 작동시킬 수 없었던 게시물을 보았습니다. 제 경우에는 grp = df.groupby('regionname').

내 목표는 새 열 또는 집계를 통해 변경 사항을 계산하는 것입니다. 나는 이와 같은 것을 시도했지만 dropna()groupby에서 작동하지 않으면 최대를 뺄 수 있습니다.

min_test = df.groupby(['regionname','date'])['median_price'].dropna().min()

max_test = df.groupby(['regionname','date'])['median_price']

샘플 예상 출력은 다음과 같을 수 있습니다.

regionname  change     
0   10022   250000.0
1   10128   -82100.0
...

데이터에는 25 개의 고유 한 우편 번호가 있으며 날짜 범위는 1996-04-01부터 2017-06-01까지이므로 최소한 기본 출력 옵션을 포함해야합니다.

내가 사용할 수 있는지 np.nanmin또는 최선의 접근 방식이 무엇인지 확실하지 않습니다 . 내가 놓친 간단한 접근 방식이 있다고 느낍니다.

이스 르엘

첫 번째 아이디어는 DataFrame.sort_values두 열 모두에서 사용한 다음 첫 번째와 마지막 값을 빼는 것입니다. 기본적으로 누락 된 값이 제거되기 때문에 올바르게 작동합니다.

df['date'] = pd.to_datetime(df['date'])

df = df.sort_values(['regionname','date'])
g = df.groupby(['regionname'])['median_price']

df['change'] = g.transform('last') - g.transform('first') 
df = df.sort_index()
print (df)          
   regionname       date  median_price    change
0       10022 1996-04-01           NaN  250000.0
1       10128 2014-05-01      407100.0  -82100.0
2       10022 2006-04-01      500000.0  250000.0
3       10022 2017-06-01      750000.0  250000.0
4       10128 2017-06-01      325000.0  -82100.0     

아니면 의해 인덱스 값의 차이를 사용 DataFrameGroupBy.idxmax하고 DataFrameGroupBy.idxmin있지만, 불행하게도없는 값에 의해 처음 그래서 필요 생략되지 않고 DataFrame.dropna다음으로 새 값 열을 생성 Series.map:

df['date'] = pd.to_datetime(df['date'])

g = (df.dropna(subset=['median_price'])
       .set_index('median_price')
       .groupby(['regionname'])['date'])
df['change'] = df['regionname'].map(g.idxmax() - g.idxmin())

print (df)       
   regionname       date  median_price    change
0       10022 1996-04-01           NaN  250000.0
1       10128 2014-05-01      407100.0  -82100.0
2       10022 2006-04-01      500000.0  250000.0
3       10022 2017-06-01      750000.0  250000.0
4       10128 2017-06-01      325000.0  -82100.0   

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이전 9 개 행의 최소값 및 최대 값 찾기

분류에서Dev

한 열에서 최소 및 최대 값을 찾고 다른 열의 해당 값 찾기

분류에서Dev

최대 값 찾기 및 다른 열의 이름 셀 식별

분류에서Dev

자바에서 배열의 최소 및 최대 값을 찾기

분류에서Dev

연관 배열 PHP의 최소 및 최대 키와 값 찾기

분류에서Dev

행렬에서 최대 값의 행 및 열 인덱스 찾기

분류에서Dev

다른 열의 특정 ID와 연결된 한 열에서 최소 및 최대 값 찾기

분류에서Dev

dplyr 및 다른 열의 반환 요소를 사용하여 열에서 최대 값 찾기

분류에서Dev

크기, 최소 및 최대 값이 짧은 임의 배열

분류에서Dev

배열의 최소 및 최대 요소 찾기

분류에서Dev

배열에서 최소 및 최대 수 찾기, 최소값은 항상 0

분류에서Dev

배열의 최대 및 최소 값

분류에서Dev

한 열의 최대 값 (그룹 별) 찾기 및 R의 다른 데이터 프레임에 값 삽입

분류에서Dev

객체 배열에서 최소값 및 대상 속성 찾기

분류에서Dev

R : 열별로 그룹의 선행 및 후행 값을 변경하여 최소값 찾기

분류에서Dev

다른 열의 동일한 값에 대한 최소 및 최대 좌표

분류에서Dev

PHP의 다차원 배열에서 최소 및 최대 그룹 값 가져 오기

분류에서Dev

순회, 최대 값 찾기 및 Java에서 배열의 평균 찾기

분류에서Dev

일련의 숫자에서 누락 된 최대 및 최소 값 찾기

분류에서Dev

Fortran의 최소 및 최대 크기

분류에서Dev

초기화되지 않은 배열의 최소 및 최대

분류에서Dev

Python 재귀-중첩 배열에서 최대 및 최소의 합계 찾기

분류에서Dev

행렬의 최대 값과 최소값 찾기

분류에서Dev

MySQL : 두 개의 서로 다른 ENUM 값에 따라 서로 다른 행에서 최소 및 최대 값 선택

분류에서Dev

배열 Javascript에서 최소 및 최대 찾기

분류에서Dev

Python DataFrame에서 최소값 열 및 최소값 열 이름 찾기

분류에서Dev

R은 다른 행을 기반으로 각 그룹의 최소값과 최대 값을 찾습니다.

분류에서Dev

다른 데이터 프레임의 최소 및 최대를 기반으로 열을 만드는 방법

분류에서Dev

세트 열의 팬더 그룹 및 다른 열에서 해당 최대 값 가져 오기

Related 관련 기사

  1. 1

    이전 9 개 행의 최소값 및 최대 값 찾기

  2. 2

    한 열에서 최소 및 최대 값을 찾고 다른 열의 해당 값 찾기

  3. 3

    최대 값 찾기 및 다른 열의 이름 셀 식별

  4. 4

    자바에서 배열의 최소 및 최대 값을 찾기

  5. 5

    연관 배열 PHP의 최소 및 최대 키와 값 찾기

  6. 6

    행렬에서 최대 값의 행 및 열 인덱스 찾기

  7. 7

    다른 열의 특정 ID와 연결된 한 열에서 최소 및 최대 값 찾기

  8. 8

    dplyr 및 다른 열의 반환 요소를 사용하여 열에서 최대 값 찾기

  9. 9

    크기, 최소 및 최대 값이 짧은 임의 배열

  10. 10

    배열의 최소 및 최대 요소 찾기

  11. 11

    배열에서 최소 및 최대 수 찾기, 최소값은 항상 0

  12. 12

    배열의 최대 및 최소 값

  13. 13

    한 열의 최대 값 (그룹 별) 찾기 및 R의 다른 데이터 프레임에 값 삽입

  14. 14

    객체 배열에서 최소값 및 대상 속성 찾기

  15. 15

    R : 열별로 그룹의 선행 및 후행 값을 변경하여 최소값 찾기

  16. 16

    다른 열의 동일한 값에 대한 최소 및 최대 좌표

  17. 17

    PHP의 다차원 배열에서 최소 및 최대 그룹 값 가져 오기

  18. 18

    순회, 최대 값 찾기 및 Java에서 배열의 평균 찾기

  19. 19

    일련의 숫자에서 누락 된 최대 및 최소 값 찾기

  20. 20

    Fortran의 최소 및 최대 크기

  21. 21

    초기화되지 않은 배열의 최소 및 최대

  22. 22

    Python 재귀-중첩 배열에서 최대 및 최소의 합계 찾기

  23. 23

    행렬의 최대 값과 최소값 찾기

  24. 24

    MySQL : 두 개의 서로 다른 ENUM 값에 따라 서로 다른 행에서 최소 및 최대 값 선택

  25. 25

    배열 Javascript에서 최소 및 최대 찾기

  26. 26

    Python DataFrame에서 최소값 열 및 최소값 열 이름 찾기

  27. 27

    R은 다른 행을 기반으로 각 그룹의 최소값과 최대 값을 찾습니다.

  28. 28

    다른 데이터 프레임의 최소 및 최대를 기반으로 열을 만드는 방법

  29. 29

    세트 열의 팬더 그룹 및 다른 열에서 해당 최대 값 가져 오기

뜨겁다태그

보관