PANDAS 열을 가공하여 다른 열에 저장

"기둥의 값을 조금 가공해서 사용하고 싶어요!!"항상 이런 경우가 있어요. 자꾸 방법을 잊어버려서 적어요.

0. 데이터 준비


import pandas as pd
df = pd.DataFrame(
    {
    'x': [1,2,3],
    'y': [1,4, -9],
    }
)

df.head()
=======================
        x	y
0	1	1
1	2	4
2	3	-9
=======================

1. 간단한 계산 예


y의 부호를 거꾸로 보다
df['y'] = -df['y']


df.head()
==================================
	x	y	y_reverse
0	1	1	-1
1	2	4	-4
2	3	-9	9
==================================

2. lambda 사용

  • 의 간단한 계산도 lambda를 다음과 같이 사용할 수 있다.
    lamdax의 x는 lamda의 별명이기 때문에 df['x']의 x와 관계가 없습니다.
  • df['y__reverse_lamda'] = df.apply(lambda x: -x['y'], axis=1)
    
    (참고문)
    https://note.com/enkey/n/n6c60800c9b43

    3. 함수 정의 및 사용


    더 복잡한 계산을 하려면, 밖에서 라마의 위치를 정의하고 호출할 수 있습니다.
    이번에는 수치의 절대값을 추구하는 처리를 써 보았다.
    3.1 정의 함수
    def func_get_absolute(x):
        if  x >= 0:
            # 値が0以上ならそのまま返す
            return x
        else:
            # 値が負なら正にして返す
            return -x
    
    3.2 응용 프로그램에서 함수를 호출하고 사용
    df['y_absolute'] = df['y'].apply(func_get_absolute)
    
    df.head()
    ==================================
    	x	y	y_absolute
    0	1	1	1
    1	2	4	4
    2	3	-9	9
    ==================================
    
    
    (참고문)
    https://qiita.com/Hyperion13fleet/items/98c31744e66ac1fc1e9f
    3.3 여러 열을 응용 함수 매개 변수로 설정할 때
    df['xxxx'] = df.apply(func_get_absolute, axis=1)
    3.4 apply 함수가 여러 열로 되돌아올 때
    
    def func_get_absolute(x):
        # 処理 xxx
        return  pd.Series([hoge1, hoge2])
    
    df[['xxx1', 'xxx2']] = df.apply(func_get_absolute, axis=1)

    좋은 웹페이지 즐겨찾기