달나라 노트

Python Pandas : values (DataFrame을 numpy arrary 형태로 변환하기) 본문

Python/Python Pandas

Python Pandas : values (DataFrame을 numpy arrary 형태로 변환하기)

CosmosProject 2021. 6. 11. 01:29
728x90
반응형

 

 

 

pandas의 values는 DataFrame에 적용하여

해당 DataFrame을 numpy arrary의 형태로 변환해줍니다.

 

import pandas as pd

dict_test = {
    'col1': [1, 2, 3, 4, 5],
    'col2': ['a', 'b', 'c', 'd', 'e'],
    'col3': [6, 7, 8, 9, 10]
}

df_test = pd.DataFrame(dict_test)
print(df_test)

print(df_test.values)



-- Result
   col1 col2  col3
0     1    a     6
1     2    b     7
2     3    c     8
3     4    d     9
4     5    e    10

[[1 'a' 6]
 [2 'b' 7]
 [3 'c' 8]
 [4 'd' 9]
 [5 'e' 10]]

위 예시를 보면 Test용 DataFrame이 numpy arrary의 형태로 변경된 것을 볼 수 있습니다.

 

 

 

 

import pandas as pd

dict_test = {
    'col1': [1, 2, 3, 4, 5],
    'col2': ['a', 'b', 'c', 'd', 'e'],
    'col3': [6, 7, 8, 9, 10]
}

df_test = pd.DataFrame(dict_test)
print(df_test)

print(df_test.loc[[1, 2], ['col2', 'col3']].values)



-- Result
   col1 col2  col3
0     1    a     6
1     2    b     7
2     3    c     8
3     4    d     9
4     5    e    10

[['b' 7]
 ['c' 8]]

위 예시처럼 loc와 동시에 사용하여 DataFrame의 일부분에 values를 적용시킬 수도 있습니다.

 

 

 

 

 

 

 

다른 예시도 봐봅시다.

 

먼저 테스트용 DataFrame을 생성합시다.

import pandas as pd

dict_1 = {
    'col1': [1, 2, 3, 4, 5],
    'col2': [2, 3, 4, 5, 6],
    'col3': [3, 4, 5, 6, 7]
}

df_1 = pd.DataFrame(dict_1)

print(df_1)
print(type(df_1))



- Output
   col1  col2  col3
0     1     2     3
1     2     3     4
2     3     4     5
3     4     5     6
4     5     6     7
<class 'pandas.core.frame.DataFrame'>




생성한 DataFrame에 values를 적용했더니 아래와 같은 내용을 얻게 되었습니다.

import pandas as pd

df_values = df_1.values

print(df_values)
print(type(df_values))



- Output
[[1 2 3]
 [2 3 4]
 [3 4 5]
 [4 5 6]
 [5 6 7]]
<class 'numpy.ndarray'>

결과 데이터의 형식은 ndarray라고 나오는데, 간단하게 list라고 생각하면 편합니다.

 

가장 바깥쪽 list는 DataFrame 전체를 의미하며 내부에 존재하는 각각의 list들은 DataFrame에 존재하는 각각의 행을 의미합니다.

 

위 예시의 output을 보면 list속 list가 있는 형태이며 이는 모두 indexing을 통해 접근할 수 있습니다.




아래처럼 list 속 list처럼 indexing을 통해 값에 접근하는 것을 볼 수 있습니다.

import pandas as pd

df_values = df_1.values

print(df_values[0])
print(df_values[2])
print(df_values[0][0])
print(df_values[2][1])



- Output
[1 2 3]
[3 4 5]
1
4

아래처럼 list 속 list처럼 indexing을 통해 값에 접근하는 것을 볼 수 있습니다.




아래처럼 뽑아낸 ndarray는 tuple, list 등을 사용하여 tuple이나 list 형태로 변환할 수 있습니다.

import pandas as pd

df_values = df_1.values

print(tuple(df_values[0]))
print(list(df_values[1]))



- Output
(1, 2, 3)
[2, 3, 4]

 

 

 

 

 

 

728x90
반응형
Comments