Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

주어진 DataFrame에서 인덱스와 열을 전치하는 프로그램을 Python으로 작성하십시오.

<시간/>

입력 -

DataFrame이 있고 인덱스와 열의 전치 결과는 다음과 같다고 가정합니다.

Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

해결책 1

  • DataFrame 정의

  • 중첩 목록 이해를 설정하여 2차원 목록 데이터의 각 요소를 반복하고 결과에 저장합니다.

result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))
  • 결과를 DataFrame으로 변환,

df2 = pd.DataFrame(result)

더 나은 이해를 위해 전체 구현을 살펴보겠습니다. −

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))]
df2 = pd.DataFrame(result)
print("Transposed DataFrame is\n", df2)

출력

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

해결책 2

  • DataFrame 정의

  • DataFrame에 df.T 또는 df.transpose() 메서드를 적용합니다.

df.transpose() # or df.T

더 나은 이해를 위해 전체 구현을 살펴보겠습니다. −

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
print("Transposed DataFrame is\n", df.transpose())

출력

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

해결책 3

  • DataFrame 정의

  • Zip 메서드는 튜플의 반복자를 반환합니다. *를 사용하여 2차원 목록에 압축을 풀고 적용합니다. 아래에 정의되어 있습니다.

result = zip(*data)
  • 결과를 DataFrame으로 변환,

df2 = pd.DataFrame(result)

더 나은 이해를 위해 전체 구현을 살펴보겠습니다. −

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
result = zip(*data)
df2 = pd.DataFrame(result)
print("Transposed DataFrame is\n", df2)

출력

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6