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