Pandas에서 스칼라로 열 곱하기

Olorunfemi Akinlua 2023년6월21일
  1. 제자리 할당을 사용하여 Pandas에서 스칼라로 열 곱하기
  2. multiply 기능을 사용하여 Pandas에서 열을 스칼라로 곱하기
  3. 적용 기능을 사용하여 Pandas에서 스칼라로 열을 곱합니다.
  4. loc 연산자를 사용하여 Pandas에서 열에 스칼라 곱하기
  5. iloc 연산자를 사용하여 Pandas에서 열에 스칼라 곱하기
Pandas에서 스칼라로 열 곱하기

우리는 데이터 채우기에서 해당 데이터 정리에 이르기까지 많은 데이터 프레임 작업에 Pandas를 사용합니다. Pandas 데이터 프레임은 Python을 사용하여 데이터 및 수학 연산을 위한 방법을 제공합니다.

다른 수학 연산은 수행하기가 덜 직관적일 수 있지만 Python을 사용하면 생각보다 훨씬 쉽습니다. 이러한 작업 중 하나는 Pandas 열에 스칼라 값을 곱하는 것입니다.

이 기사에서는 다양한 복잡성 내에서 Pandas의 열에 스칼라를 곱하는 5가지 방법을 보여줍니다.

제자리 할당을 사용하여 Pandas에서 스칼라로 열 곱하기

내부 할당을 사용하여 pandas에서 열에 스칼라 값을 곱하는 방법에 접근하기 전에 달성하려는 것을 보여 드리겠습니다.

열이 7개인 데이터 프레임이 있습니다.

열이 7개인 데이터 프레임

이제 열(one)에 스칼라 값(5)을 곱하려고 합니다.

열이 7개인 다중 데이터 프레임

그렇다면 어떻게 달성할 수 있을까요? 첫 번째 접근 방식은 값을 할당하는 것 외에도 값에 대해 작업을 수행하는 작업인 내부 할당을 사용하는 것입니다.

제자리 할당을 사용하여 첫 번째 피연산자 변수의 값을 피연산자 값에 대해 수행된 연산 결과로 덮어씁니다. 시각적으로 x *= 3x = x * 3과 동일합니다. 여기서 변수 x가 보유하는 값은 3으로 곱해진 다음 동일한 변수 x에 할당됩니다.

이를 설명하기 위해 열 이름을 할당하고 one 열에서 내부 할당을 수행하는 ones로 채워진 6개 행과 7개 열의 Pandas 데이터 프레임을 만들 수 있습니다.

import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.ones((6, 7)), columns=["one", "two", "three", "four", "five", "six", "seven"]
)

print(df)

출력:

one  two  three  four  five  six  seven
0  1.0  1.0    1.0   1.0   1.0  1.0    1.0
1  1.0  1.0    1.0   1.0   1.0  1.0    1.0
2  1.0  1.0    1.0   1.0   1.0  1.0    1.0
3  1.0  1.0    1.0   1.0   1.0  1.0    1.0
4  1.0  1.0    1.0   1.0   1.0  1.0    1.0
5  1.0  1.0    1.0   1.0   1.0  1.0    1.0

내부 할당을 사용하려면 점 표기법이나 대괄호 표기법을 사용하여 스칼라 값을 곱하려는 Pandas 열을 선택해야 합니다. 대괄호 표기법을 사용하여 one 열을 선택합니다.

df["one"] *= 5

print(df)

출력:

one  two  three  four  five  six  seven
0  5.0  1.0    1.0   1.0   1.0  1.0    1.0
1  5.0  1.0    1.0   1.0   1.0  1.0    1.0
2  5.0  1.0    1.0   1.0   1.0  1.0    1.0
3  5.0  1.0    1.0   1.0   1.0  1.0    1.0
4  5.0  1.0    1.0   1.0   1.0  1.0    1.0
5  5.0  1.0    1.0   1.0   1.0  1.0    1.0

보시다시피 one 열에 스칼라 값(5)을 곱했습니다.

multiply 기능을 사용하여 Pandas에서 열을 스칼라로 곱하기

내부 할당 접근 방식에서 곱셈 연산자를 사용하는 대신 Pandas에서 제공하는 multiply 메서드를 사용할 수 있습니다. 원하는 열에 메서드를 적용하고 스칼라 값을 multiply 메서드의 인수로 전달합니다.

multiply 방법을 보여주기 위해 열 two에 스칼라 값 7을 곱합니다(점 표기법을 사용하여 two 열에 액세스).

df.two = df.two.multiply(7)
print(df)

출력:

one  two  three  four  five  six  seven
0  5.0  7.0    1.0   1.0   1.0  1.0    1.0
1  5.0  7.0    1.0   1.0   1.0  1.0    1.0
2  5.0  7.0    1.0   1.0   1.0  1.0    1.0
3  5.0  7.0    1.0   1.0   1.0  1.0    1.0
4  5.0  7.0    1.0   1.0   1.0  1.0    1.0
5  5.0  7.0    1.0   1.0   1.0  1.0    1.0

적용 기능을 사용하여 Pandas에서 스칼라로 열을 곱합니다.

multiply 메서드를 사용한 것과 유사하게 Pandas에서 열을 스칼라로 곱하기 위해 apply 메서드(고차 함수)를 사용할 수 있습니다. apply 메서드는 적용된 열의 셀 요소에 대해 작업을 수행하는 lambda 함수를 사용합니다.

따라서 lambda 함수를 사용하여 셀 요소에 곱셈 동작을 지정할 수 있습니다.

이것이 어떻게 작동하는지 설명하기 위해 apply 메서드를 사용하여 three 열(이전 섹션에서 사용된 데이터 프레임의)에 9를 곱합니다.

df["three"] = df["three"].apply(lambda x: x * 9)
print(df)

출력:

one  two  three  four  five  six  seven
0  5.0  7.0    9.0   1.0   1.0  1.0    1.0
1  5.0  7.0    9.0   1.0   1.0  1.0    1.0
2  5.0  7.0    9.0   1.0   1.0  1.0    1.0
3  5.0  7.0    9.0   1.0   1.0  1.0    1.0
4  5.0  7.0    9.0   1.0   1.0  1.0    1.0
5  5.0  7.0    9.0   1.0   1.0  1.0    1.0

three 열의 모든 셀에 lambda 함수를 기반으로 9가 곱해진 것을 볼 수 있습니다. 이 접근 방식은 스트레스가 많은 것처럼 보일 수 있지만 열을 곱하려는 값이 셀에 따라 다를 수 있는 경우 더 기능적일 수 있습니다.

loc 연산자를 사용하여 Pandas에서 열에 스칼라 곱하기

또한 loc 연산자를 사용하여 Pandas에서 열에 스칼라를 곱할 수 있습니다. loc 연산자를 사용하여 데이터 프레임의 일부를 인덱싱할 수 있습니다.

행과 열을 기준으로 인덱싱할 수 있습니다. 우리에게는 필요한 열을 기반으로 인덱싱해야 합니다.

loc 연산자의 일반적인 구문은 다음과 같습니다.

DataFrame.loc[rows, columns]

그러나 열에만 액세스하려면 아래 구문을 사용할 수 있습니다.

DataFrame.loc[:, columns]

:은 모든 행을 원함을 나타냅니다. 위의 구문은 함께 지정된 열의 모든 행에 액세스하는 것을 의미합니다.

이제 위 구문을 사용하여 four 열을 가져오고 제자리 할당을 사용하여 값에 11을 곱합니다.

df.loc[:, "four"] *= 11
print(df)

출력:

one  two  three   four  five  six  seven
0  5.0  7.0    9.0  11.0   1.0  1.0   1.0
1  5.0  7.0    9.0  11.0   1.0  1.0   1.0
2  5.0  7.0    9.0  11.0   1.0  1.0   1.0
3  5.0  7.0    9.0  11.0   1.0  1.0   1.0
4  5.0  7.0    9.0  11.0   1.0  1.0   1.0
5  5.0  7.0    9.0  11.0   1.0  1.0   1.0

불필요하게 길어 보이지만 이 접근 방식은 여러 열을 곱하려는 경우에 유용합니다. 예를 들어 열 fivesix13을 곱하려는 경우 열 이름이 포함된 목록을 loc 연산자의 두 번째 인수로 전달합니다.

df.loc[:, ["five", "six"]] *= 13
print(df)

출력:

one  two  three  four  five   six  seven
0  5.0  7.0    9.0  11.0  13.0  13.0    1.0
1  5.0  7.0    9.0  11.0  13.0  13.0    1.0
2  5.0  7.0    9.0  11.0  13.0  13.0    1.0
3  5.0  7.0    9.0  11.0  13.0  13.0    1.0
4  5.0  7.0    9.0  11.0  13.0  13.0    1.0
5  5.0  7.0    9.0  11.0  13.0  13.0    1.0

iloc 연산자를 사용하여 Pandas에서 열에 스칼라 곱하기

loc 연산자와 마찬가지로 액세스하려는 값의 인덱스로 정수 값만 허용합니다. 열 이름을 사용할 수 있는 loc과 달리 열의 인덱스 값을 사용합니다.

또한 인덱스는 1이 아닌 0에서 시작한다는 점을 기억하십시오. 따라서 seven 열에 액세스하고 15를 곱하려면 인덱스 값 6을 사용합니다.

df.iloc[:, 6] = df.iloc[:, 6] * 15
print(df)

출력:

one  two  three  four  five   six  seven
0  5.0  7.0    9.0  11.0  13.0  13.0   15.0
1  5.0  7.0    9.0  11.0  13.0  13.0   15.0
2  5.0  7.0    9.0  11.0  13.0  13.0   15.0
3  5.0  7.0    9.0  11.0  13.0  13.0   15.0
4  5.0  7.0    9.0  11.0  13.0  13.0   15.0
5  5.0  7.0    9.0  11.0  13.0  13.0   15.0
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

관련 문장 - Pandas DataFrame Column