넘파이 ndarray, 리스트, 딕셔너리를 dataframe으로 변환하기¶
- 1차원 형태 데이터 기반으로 데이터프레임 생성하므로 칼럼명이 1개만 필요함
In [1]:
import numpy as np
import pandas as pd
col_name1 = ['col1']
list1 = [1, 2, 3]
array1 = np.array(list1)
print('array1 shape:', array1.shape)
#리스트를 이용해 DataFrame 생성
df_list1 = pd.DataFrame(list1, columns=col_name1)
print('1차원 리스트로 만든 DataFrame: \n', df_list1)
#넘파이 ndarray를 이용해 DataFrame 생성
df_array1 = pd.DataFrame(array1, columns=col_name1)
print('1차원 ndarray로 만든 DataFrame: \n', df_array1)
array1 shape: (3,)
1차원 리스트로 만든 DataFrame:
col1
0 1
1 2
2 3
1차원 ndarray로 만든 DataFrame:
col1
0 1
1 2
2 3
- 2차원 형태 데이터 기반으로 데이터프레임 생성하기, 2행X3열 형태의 리스트와 ndarray 필요
In [2]:
#3개의 칼럼명 필요
col_name2 = ['col1', 'col2', 'col3']
#2행 3열 형태의 리스트와 ndarray 생성하고 df로 변환
list2 = [[1, 2, 3],
[11, 12, 13]]
array2 = np.array(list2)
print('array2 shape:', array2.shape)
df_list2 = pd.DataFrame(list2, columns=col_name2)
print('2차원 리스트로 만든 DataFrame: \n', df_list2)
df_array2 = pd.DataFrame(array2, columns=col_name2)
print('2차원 ndarray로 만든 DataFrame: \n', df_array2)
array2 shape: (2, 3)
2차원 리스트로 만든 DataFrame:
col1 col2 col3
0 1 2 3
1 11 12 13
2차원 ndarray로 만든 DataFrame:
col1 col2 col3
0 1 2 3
1 11 12 13
- 딕셔너리를 데이터프레임으로 변환하기
- key는 칼럼명, value는 key에 해당하는 칼럼 데이터로 변환됨
- key는 문자열, value는 리스트 또는 ndarray 형태로 딕셔너리를 구성함
In [3]:
dict = {'col1' : [1, 11], 'col2' : [2, 22], 'col3' : [3, 33]}
df_dict = pd.DataFrame(dict)
print('딕셔너리로 만든 DataFrame: \n', df_dict)
딕셔너리로 만든 DataFrame:
col1 col2 col3
0 1 2 3
1 11 22 33
In [4]:
#df를 ndarray로
array3 = df_dict.values
print('df_dict.values 타입:', type(array3), 'df_dict.values shape:', array3.shape)
print(array3)
df_dict.values 타입: <class 'numpy.ndarray'> df_dict.values shape: (2, 3)
[[ 1 2 3]
[11 22 33]]
In [9]:
#df를 리스트, 딕셔너리로
list3 = df_dict.values.tolist()
print('df_dict.values.tolist() 타입:', type(list3))
print(list3)
dict3 = df_dict.to_dict('list')
print('\n df_dict.to_dict() 타입:', type(dict3))
print(dict3)
df_dict.values.tolist() 타입: <class 'list'>
[[1, 2, 3], [11, 22, 33]]
df_dict.to_dict() 타입: <class 'dict'>
{'col1': [1, 11], 'col2': [2, 22], 'col3': [3, 33]}
'Python > Pandas' 카테고리의 다른 글
판다스 pandas (6) - isna( ), fillna( ) (0) | 2023.04.30 |
---|---|
판다스 pandas (5) - aggregation, groupby (0) | 2023.04.30 |
판다스 pandas (4) - indexing, iloc, loc, boolean (0) | 2023.04.30 |
판다스 pandas (3) - Index 객체, reset_index (0) | 2023.04.30 |
판다스 pandas (1) - 개요, DataFrame (0) | 2023.04.25 |