스택큐힙리스트

열에 파이썬 판다스 함수를 적용하여 여러 새 열을 만들 수 있나요? 본문

카테고리 없음

열에 파이썬 판다스 함수를 적용하여 여러 새 열을 만들 수 있나요?

스택큐힙리스트 2023. 4. 24. 13:18
반응형

판다스에서 이걸 어떻게 해야 할까요?

저는 하나의 텍스트 열에서 extract_text_features라는 함수를 가지고 있으며, 복수의 출력 열을 반환합니다. 구체적으로, 이 함수는 6개의 값들을 반환합니다.

함수는 작동하지만 적절한 반환 유형(pandas DataFrame/ numpy array/ Python list)이 없어 출력물이 올바르게 할당되지 않는 것 같습니다. df.ix[: ,10:16] = df.textcol.map(extract_text_features)

그러면 this에 따라 df.iterrows()로 반복해야 할 것 같습니다.

업데이트:

df.iterrows()와의 반복작업은 최소 20배 느리기 때문에, 저는 포기하고 함수를 여섯 가지 명확한 .map(lambda ...) 호출로 분리하였습니다.

업데이트 2: 이 질문은 #$#$&*$$& 약간 이전에 질문되었으며 사용성 df.apply이 개선되거나 #$! # !! ^ * $ & 또는 #$! * $ & ^^ $ &등이 되기 전에 질문되었습니다. 따라서 질문과 답변의 많은 부분이 그다지 관련이 없습니다.

답변 1

보통 저는 zip을(를) 사용합니다.

>>> df = pd.DataFrame([[i] for i in range(10)], columns=['num'])

>>> df

num

0 0

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

>>> def powers(x):

>>> return x, x**2, x**3, x**4, x**5, x**6

>>> df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = \

>>> zip(*df['num'].map(powers))

>>> df

num p1 p2 p3 p4 p5 p6

0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1

2 2 2 4 8 16 32 64

3 3 3 9 27 81 243 729

4 4 4 16 64 256 1024 4096

5 5 5 25 125 625 3125 15625

6 6 6 36 216 1296 7776 46656

7 7 7 49 343 2401 16807 117649

8 8 8 64 512 4096 32768 262144

9 9 9 81 729 6561 59049 531441

답변 2

Pandas의 함수를 열에 적용하여 여러 개의 새로운 열을 만드는 방법은 매우 유용한 기능입니다. 이 기능은 대규모 데이터 세트에서 작업할 때 특히 유용합니다. 이 기능을 사용하면 데이터 프레임에서 값을 추출하고 이를 사용하여 새로운 열을 만들 수 있습니다. 이를 통해 데이터를 더욱 쉽게 조작하고 분석할 수 있습니다.

Pandas 함수를 사용하여 새로운 열을 만드는 방법은 매우 간단합니다. 먼저 데이터 프레임에서 적용할 함수를 선택합니다. 다음으로 apply 메소드를 사용하여 함수를 적용할 열을 선택합니다. 마지막으로 새로운 열을 만들고 결과를 저장합니다. 이를 통해 여러 개의 새로운 열을 만들 수 있습니다.

예를 들어, 우리는 일별 기온 데이터를 갖고 있다고 가정합니다. 이 데이터에서 여러 개의 새로운 열을 만들어 보겠습니다. 먼저 데이터에서 최고 기온과 최저 기온을 추출합니다. 그런 다음 두 값의 차이를 계산하여 새로운 열을 만듭니다. 이를 위해 apply 메소드를 사용하여 최고 기온과 최저 기온을 추출합니다. 그 다음 diff 함수를 사용하여 두 값의 차이를 계산합니다. 마지막으로 결과를 새로운 열에 저장합니다.

이와 같은 방식으로, Pandas 함수를 사용하여 새로운 열을 만드는 방법은 매우 간단하고 유용한 기능입니다. 이를 통해 데이터를 더욱 쉽게 조작하고 분석할 수 있으며, 코드를 더욱 효율적으로 작성할 수 있습니다. 따라서 Pandas를 활용하여 데이터 분석 작업을 수행하는 모든 사용자들은 이 기능을 적극적으로 활용하시기 바랍니다.

반응형
Comments