Development/Python

[Module] rpy2 (R 데이터프레임을 python/pandas 데이터 프레임으로 변환)

Dev. Jkun 2022. 6. 8. 06:48
반응형

드디어 찾았다. 휴우우~~~ 이제 좀 스마아트으~

이전 포스트 [Module - rpy2] 파이썬에서 R 실행하기 에서 R 실행결과 데이터프레임을 파이썬의 pandas 모듈의 데이터프레임형식으로 변환하고자 했을때 pandas 의 데이터프레임 형식을 선언하고 구성하여 출력해 보았다.

차암... 스마트하지 못해 기분이 별로였는데 열심히 documentation 을 뒤져보니 찾을 수 있었다. 보니 rpy2 에는 converter 가 있었다. 그리고 떠어억 하니 rpy2 문서 목차에 명시되어 있었다.

해서 일단 클릭해서 테스트 해보기로 했다.

다음은 테스트해본 파이썬+R 코드이다.

import rpy2.robjects as robjects
import pandas as pd

from rpy2.robjects import pandas2ri
from rpy2.robjects.conversion import localconverter

des2 = robjects.r('''
    library(psych)
    x <- read.csv(toString("./rpy2.csv"), sep = ",", header = TRUE, encoding = "UTF-8")
    describe(x)
''')
print(des2)

이렇게 describe 결과를 출력하기 위한 R 코드의 결과 describe(x...) 를 변환해보자.

# localconverter
with localconverter(pandas2ri.converter):
  pd_from_r_df = robjects.conversion.rpy2py(des2)

print(pd_from_r_df) # 데이터프레임 출력
print(pd_from_r_df['vars']) # 열명을 지정하여 출력
print(type(pd_from_r_df)) # 데이터프레임의 형 확인

그럼 결과 출력과가 이전 포스팅과도 똑같이 출력되는걸 보고 좋아서 모르고 입을 어루만졌다. ㅋㅋㅋ

결과출력

결과에는 R 의 describe 함수 결과를 converting 하여 위 예시와 같이 출력했더니 자알된다. ㅎㅎ

 

반응형