NumPy 배열을 Pandas DataFrame으로 변환

Suraj Joshi 2021년2월9일
NumPy 배열을 Pandas DataFrame으로 변환

이 가이드에서는pandas.DataFrame()메서드를 사용하여 numpy 배열을 Pandas DataFrame으로 변환하는 방법을 설명합니다.

numpy 배열을pandas.DataFrame()메소드에 전달하여 NumPy 배열에서 Pandas DataFrames를 생성합니다. DataFrame에 대한 열 이름과 행 인덱스를 지정할 수도 있습니다.

pandas.DataFrame()메서드를 사용하여 NumPy 배열을 Pandas DataFrame으로 변환

NumPy 배열에서 DataFrame을 생성하기 위해 NumPy 배열을pandas.DataFrame()메서드에 전달합니다.

from numpy import random
import pandas as pd

random.seed(5)
random.randint(100, size=(3, 5))
data_array = random.randint(100, size=(4, 3))

print("NumPy Data Array is:")
print(data_array)

print("")

data_df = pd.DataFrame(data_array)
print("The DataFrame generated from the NumPy array is:")
print(data_df)

출력:

NumPy Data Array is:
[[27 44 77]
 [75 65 47]
 [30 84 86]
 [18  9 41]]

The DataFrame generated from the NumPy array is:
    0   1   2
0  27  44  77
1  75  65  47
2  30  84  86
3  18   9  41

먼저 4 개의 행과 3 개의 열이있는(4,3)크기의 임의 배열을 만듭니다. 그런 다음 배열을 pandas.DataFrame()메서드에 인수로 전달하여 배열에서 data_df라는 DataFrame을 생성합니다. 기본적으로pandas.DataFrame()메서드는 기본 열 이름과 행 색인을 삽입합니다.

pandas.DataFrame()메소드의indexcolumns 매개 변수를 사용하여 열 이름과 행 색인을 설정할 수도 있습니다.

from numpy import random
import pandas as pd

random.seed(5)
random.randint(100, size=(3, 5))
data_array = random.randint(100, size=(4, 3))
row_indices = ["Row_1", "Row_2", "Row_3", "Row_4"]
column_names = ["Column_1", "Column_2", "Column_3"]

print("NumPy Data Array is:")
print(data_array)

print("")

data_df = pd.DataFrame(data_array, index=row_indices, columns=column_names)
print("The DataFrame generated from the NumPy array is:")
print(data_df)

출력:

NumPy Data Array is:
[[27 44 77]
 [75 65 47]
 [30 84 86]
 [18  9 41]]

The DataFrame generated from the NumPy array is:
       Column_1  Column_2  Column_3
Row_1        27        44        77
Row_2        75        65        47
Row_3        30        84        86
Row_4        18         9        41

여기에서index의 값을 각 행의 색인을 포함하는 목록 인row_indices로 설정합니다. 마찬가지로 각 열의 이름이 포함 된 column_names목록에 columns값을 설정하여 열 이름을 할당합니다.

경우에 따라 NumPy 배열 자체에 행 인덱스와 열 이름이 포함될 수 있습니다. 그런 다음 배열 슬라이싱을 사용하여 배열에서 데이터, 행 인덱스 및 열 이름을 추출합니다.

import numpy as np
import pandas as pd

marks_array = np.array(
    [["", "Mathematics", "Economics"], ["Sunny", 25, 23], ["Alice", 23, 24]]
)

print("NumPy Data Array is:")
print(marks_array)

print("")

row_indices = marks_array[1:, 0]
column_names = marks_array[0, 1:]
data_df = pd.DataFrame(
    data=np.int_(marks_array[1:, 1:]), index=row_indices, columns=column_names
)

print("The DataFrame generated from the NumPy array is:")
print(data_df)

출력:

NumPy Data Array is:
[['' 'Mathematics' 'Economics']
 ['Sunny' '25' '23']
 ['Alice' '23' '24']]

The DataFrame generated from the NumPy array is:
       Mathematics  Economics
Sunny           25         23
Alice           23         24

NumPy 배열 자체에 행 인덱스와 열 이름이 있습니다. 첫 번째 행과 첫 번째 열 뒤의 모든 값을 선택하여pandas.DataFrame()함수에data 인수로 제공하고 두 번째 행에서 첫 번째 열 값을 모두 선택하여index로 전달합니다. 마찬가지로 두 번째 열에서 첫 번째 행 값을 모두 선택하고 columns인수로 전달하여 열 이름을 설정합니다.

numpy.array()는 배열의 동일한 데이터 형식을 보장하기 위해 NumPy 배열을 만드는 동안 정수 값을 문자열 값으로 변환합니다. numpy.int_()함수를 사용하여 데이터 값을 다시integer 유형으로 변환합니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Pandas DataFrame