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
반응형