Pandas에서 스칼라로 열 곱하기
- 제자리 할당을 사용하여 Pandas에서 스칼라로 열 곱하기
-
multiply기능을 사용하여 Pandas에서 열을 스칼라로 곱하기 -
적용기능을 사용하여 Pandas에서 스칼라로 열을 곱합니다. -
loc연산자를 사용하여 Pandas에서 열에 스칼라 곱하기 -
iloc연산자를 사용하여 Pandas에서 열에 스칼라 곱하기
우리는 데이터 채우기에서 해당 데이터 정리에 이르기까지 많은 데이터 프레임 작업에 Pandas를 사용합니다. Pandas 데이터 프레임은 Python을 사용하여 데이터 및 수학 연산을 위한 방법을 제공합니다.
다른 수학 연산은 수행하기가 덜 직관적일 수 있지만 Python을 사용하면 생각보다 훨씬 쉽습니다. 이러한 작업 중 하나는 Pandas 열에 스칼라 값을 곱하는 것입니다.
이 기사에서는 다양한 복잡성 내에서 Pandas의 열에 스칼라를 곱하는 5가지 방법을 보여줍니다.
제자리 할당을 사용하여 Pandas에서 스칼라로 열 곱하기
내부 할당을 사용하여 pandas에서 열에 스칼라 값을 곱하는 방법에 접근하기 전에 달성하려는 것을 보여 드리겠습니다.
열이 7개인 데이터 프레임이 있습니다.

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

그렇다면 어떻게 달성할 수 있을까요? 첫 번째 접근 방식은 값을 할당하는 것 외에도 값에 대해 작업을 수행하는 작업인 내부 할당을 사용하는 것입니다.
제자리 할당을 사용하여 첫 번째 피연산자 변수의 값을 피연산자 값에 대해 수행된 연산 결과로 덮어씁니다. 시각적으로 x *= 3은 x = 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
불필요하게 길어 보이지만 이 접근 방식은 여러 열을 곱하려는 경우에 유용합니다. 예를 들어 열 five 및 six에 13을 곱하려는 경우 열 이름이 포함된 목록을 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 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