카테고리 보관물: Python

Python 에러 해결 – TypeError: a bytes-like object is required, not ‘str’

아는 사람에게는 너무 쉽고 간단한 것이지만 참고를 위해서 포스팅합니다.

파이썬에서 문자열을 다루다 보면 이런 에러가 나올 때가 있습니다.

TypeError: a bytes-like object is required, not ‘str’

이 에러는 bytes-likes 오브젝트가 필요하니 str 타입 말고 bytes 타입의 변수를 넣으라는 뜻입니다.

DB나 다른 시스템에서 당겨온 문자열을 처리하다보면 만날때가 있습니다.

bytes와 str은 다음과 같은 관계가 있습니다. 바꾸는 방법입니다.

  • str –> 디코딩 –> bytes
  • bytes –> 인코딩 –> str

코드로 바꾸면 이렇게 하면 됩니다.

에러메세지에 bytes라는 단어가 보이면 대부분 문자열 인코딩, 디코딩과 관련이 있을 것이라고 기억해 두면됩니다.

github 에 push 할때 인증창 안뜨게 하기

github에 있는 레파지토리를 클론할 때 레파지토리 주소에 사용자 아이디와 패쓰워드를 넣어두면 pull이나 push가 인증을 한다거나 매번 비밀번호를 물어본다거나 하는 일이 없어져서 편해집니다.

방법은
레파지토리에 주소에 사용자 아이디 패쓰워드 추가하면 됩니다.

특히 Github에 커밋할때마다 비밀번호를 물어보거나 인증을 했는데도 다음번에 또 물어보거나 하는 현상을 없앨 수 있습니다.

방법은 이렇습니다.

클로닝(cloning)할 것헙 레파지토리(repository) 주소

https://github.com/microsoft/vscode.git

위의 주소를 고쳐서 이렇게 해줍니다.

https://사용자아이디:사용자패쓰워드@github.com/microsoft/vscode.git

github.com앞에 @를 붙이고 그 앞에 사용자아이디 그리고 콜론 사용자 패쓰워드를 입력하면 됩니다.

패쓰워드가 드러나게 되니까 이 주소가 유출되지 않게 해야 합니다.

비밀번호에 @가 포함된 경우 해결 방법

비밀번호에 @가 있으면 github.com 앞의 구분자 @와 충돌합니다.

이때는 @를 %40으로 바꾸면 됩니다. 예를 들어

사용자아이디: user

비밀번호: pass!@#

라면

https://user:pass!%40#@github.com/microsoft/vscode.git

이 됩니다.

비밀번호가 노출되는 것이 싫어요. 대신 토큰 사용하기

https를 사용하기 때문에 네트워크에서 비밀번호가 새나갈 위험은 없습니다만 그래도 비밀번호를 그대로 적어서 저장하는 것은 위험합니다.

비밀번호를 적는 것이 걱정된다면 github에서 토큰을 받아서 비민번호대신 넣어줘도 됩니다. 자신의 토큰은 깃헙에서 받을 수 있습니다.

토큰 메뉴는 Settings -> Developers setting 에 있습니다.

참고

https://stackoverflow.com/questions/6172719/escape-character-in-git-proxy-password

tqdm 파이썬 텍스트 프로그레스 바 패키지, Python progress bar

tqdm이라는 것이 있습니다.

터미널의 텍스브 모드에서 간단하게 특수기호를 이용해서 프로그레스파를 반들어주는 것을 볼 수 있습니다.

파이썬 패키지 중에 tqdm이라는 것이 있는데 tqdm은 터미널커맨드도 지원하고 파이썬 코드내에서도 쓸 수 있습니다.

쉽고 편하고 깔끔합니다. 그림을 보세요.

Screenshot

자세한 내용은 tqdm의 github을 참고하세요.

https://github.com/tqdm/tqdm

데이터과학하려면 R과 Python 중 어떤 걸 배워야 하나?

요즘 추세로 본다면 데이터과학, 데이터분석, 딥러닝, 기계학습 등을 하려면 R과 Python 중 하나를 선택해야 합니다.

R과 Python은 둘 다 모두 스크립트(script) 언어이면서 둘다 대화형 언어(Interpretor)이기도 합니다.

스크립트 언어라는 것은 C++이나 Java 처럼 컴파일을 하거나 중간코드를 빌드하지는 않는 것을 말하는 것이고 대화형 언어라는 것은 코드를 입력하고 그 결과를 즉시 확인할 수 있다는 것입니다.

그래서 가능하다면 R과 Python을 둘 다 하는 것이 훨씬 좋습니다. 하지만 R이 PYthon보다는 학습장벽이 매우 높기 때문에 둘 중에 어떤 것을 먼저해야 하냐고 묻는다면

대답은 Python 입니다.
현재는 Python을 먼저 선택하는 것이 대체로 유리합니다.

그럼 R은 생각할 필요도 없는 것인가? 라고 묻는다면 당연히 그렇지 않습니다. 자신이 어떤 쪽의 일을 할 것인지 하고 있는지, 어떤 스타일로 하는지에 따라 달라질 수 있습니다.

데이터과학 랭귀지를 선택할 때 고려할 것

선택을 할 때 아래와 같은 간단한 체크 리스트를 만들어 봤습니다.

  • 앞으로 통계 분석을 더 많이 하게 될 것 같다. R
  • 시각화가 편하고 빠르면 좋겠다. R
  • 일괄 처리 작업이나 텍스트마이닝 같은 처리도 하고 싶다. Python
  • 기계학습 모델을 자주 만들고 많이 만들것 같다. Python
  • 데이터 전처리와 이관, 자동화 같은 것도 해야 한다. Python
  • 최신 통계 패키지(새 알고리즘, 기법같은 것들)가 많아야 한다. R
  • 최신 기계학습 패키지가 많아야 한다. Python
  • 딥러닝을 해야 한다. Python
  • IOT도 해야 하고 로그 분석도 해야한다. Python
  • 시계열 분석, 수리 통계, 금융 분석 이런 고급 통계나 수학과 관련된 것을 앞으로 할 것이다. R
  • 빅데이터 플랫폼들에 접속해서 비정형 데이터를 가져오거나 처리해야 한다. Python
  • 나는 금융공학에 관심이 있다. Python
  • UI가 있는 웹개발도 좀 해야 한다. Python
  • 웹개발도 해야하긴 하지만 복잡한 것은 안하고 위젯 정도나 간단한 시각화 수준이면 된다. R (Shiny가 있으므로)
  • 주로 연구하고 논문쓰는 일을 많이 할 것 같다. R
  • 나는 의사이고 실험을 많이 한다. R
  • 분석 리포트를 많이 쓰거나 논문을 많이 써야 한다. R
  • 바이오인포메틱스이고 유전자 데이터 이런 일과 관련이 있다. Python
  • 앞으로 클라우드의 자원 활용도 많이 하게될 것 같다. Python
  • 범접할 수 없는 레벨의 과학자처럼 보여지고 싶다. R
  • 데이터과학의 귀재로 보여지고 싶다. Python

대부분 R과 Python 둘다 가능한 것이지만 둘 중에 더 유리한 것 하나를 답으로 적어두었습니다. 경험을 바탕으로 적은 것입니다. 의견의 차이가 있을 수 있지만 무분별한 비난은 사절합니다.

위의 목록을 쭉 훑어보면 대체로 PYthon이 답인 경우가 많으니 그냥 Python 선택하면 된다는 쪽으로 보여집니다만 위에 열거한 것들에서 선택된 것의 숫자만 보고 그렇게 판단하면 안됩니다.

R의 좋은 점

R을 옹호하는 입장이 되서 장점을 어필해 보겠습니다.

R의 강점은 커뮤니티와 커뮤니티에서 제공되는 패키지가 있습니다. 최신 통계 분석, 알고리즘이나 기법들이 패키지가 가장 빨리 제공되고 있으며 품질도 상당히 좋습니다.

대부분 패키지를 만들어서 제공하시는 분들이 그 분야의 석박사이거나 교수들입니다. 100% 믿을 수 있는 것은 아니지만 보통은 쓰는 사라들보다 그 부분에 대해서는 훨씬 전문적인 분들이라서 믿고 쓸 수 있습니다.

또 패키지가 중앙집중식으로 엄격하게 관리되고 있습니다. 패키지가 등록될 때 절차도 까다롭고 검증도 까다롭습니다. 그래서 패키지가 작동하지 않는다거나 하는일이 거의없고 오래된 패키지들도 비교적 관리가 잘됩니다.

Python의 좋은 점

Python을 옹호하는 입장에서 장점을 어필해보면.

Python을 쓰는 사람이 워낙 많아서 자료를 구하기 쉽고 샘플 코드를 구하기도 쉽습니다. 사용자 층이 두텁다고 하죠. 이제 가장 사용자가 많은 랭귀지가 되었습니다.

Python은 다런 언어에 비해 배우기 쉬운 편입니다. 물론 그렇다고 해서 책 한 권 읽고 바로 할 수 있을 만큼 정말 쉽다는 얘기는 또 아닙니다. 다른 랭귀지에 비해서 비교적 쉽다는 거입니다.

직군별로 간단하게 선택하는 방법

“하는 일” 또는 “하려고 하는 일”의 직군을 보고 간단하게 선택할 때는 이렇게 하면 됩니다.

  • 엔지니어, 개발자 쪽에 가깝다면 Python
  • 분석가, 연구원에 가깝다면 R
  • 그냥 과학자라면 아무렇게나 하세요. 아마 둘 다 안 쓸 가능성이 큽니다.

기획자, 세일즈, 비즈니스 직군인데 분석용 언어를 배워보려면 어떤 것을 써야 하나?

데이터분석이나 데이터과학을 하려고 하는데 그 일이 꼭 컴퓨터랭귀지를 쓰지 않아도 엑셀이나 다른 도구로 할 수 있는 것이 아닌지 먼저 확인해 보세요. 대부분 간단한 것은 다 할 수 있습니다.

그럼에도 불구하고 취미이든, 도전이든, 자기계발이든, 미래를 위해서 이든, 컴퓨터 언어를 하나 배우고 싶다면?

Python을 선택하면 됩니다.

왜냐면 R이 더 안좋아서가 아니라 배우기 더 어렵기 때문입니다.

그다지 궁금하지 않겠지만 이 포스트를 보고 또 Python에 너무 편향된 것이 아니냐고 하실 분들이 있을 것 같아서 마지막으로 말씀드리면 저는 Python 보다는 R을 더 좋아합니다.

데이터 과학을 위한 R과 Python

데이터 과학을 할 때 사용할 컴퓨터 언어로 R이 좋은지 Python이 좋은지에 대한 비교글은 구글 검색을 하면 비교적 많은 자료를 얻을 수 있을 것입니다. 사람들이 논쟁하기에 딱 좋은 주제이기 때문입니다. 어차피 사람마다 차이가 있기 때문에 명확하게 결론을 내기는 어려우니 대충 하기 나름이다라고 하면 욕먹을 일도 없습니다.

그래서 이 주제도 R과 SAS 비교와 같이 결론이 잘 나지 않고 애매모호하게 끝을 맺게 됩니다만.

R은 표준어법에 따르면 “아르”로 읽는 것이 맞습니다. 그래서 글을 쓸때도 “R는”, “R가” 처럼 조사를 맞춰서 써야 하는 것이 맞습니다만 이게 너무 어색해서 그냥 “알”로 하겠습니다.

무엇을 선택하는 것이 유리한가?

데이터사이언스(Data science) 또는 데이터분석( Data Analysis)같은 것을 하려고하는데 아니면 이제 막 시작하려고 하는데 요즘 유행인 R, Python같은 것들 중에서 “무엇을 배워야 하는가? ” 또는 “무엇을 선택해야 나중에 유리한가?”라는 것입니다.

대세는 Python인 것 같은데 Python을 해야 하는지 아니면 좀 더 통계 분석가나 과학자들이 쓸 것 같아 보이는 R을 선택할 것인지 말입니다.

어떤 도구를 선택하느냐에 대해서 물어보면 전문가 또는 경험자들의 대답은 언제나 사용하는 사람에 따라 다르고 환경에 따라 다르다고 합니다. 그게 답이라는 것은 누구나 압니다.

하지만 사람들이 원하는 답은 그것이 아닐 것입니다. 뭔가를 선택하게 해주는 것입니다.

랭귀지를 선택할 때 고려할 것

데이터 분석이나 데이터 과학을 하는데 있어 컴퓨터 랭귀지를 선택할 때 고려할 것들에 대해서 몇가지를 적어봅니다.

  • 범용성이 높은 것을 선택
  • 사람들이 많이 쓰는 것을 선택
  • 가격이 비싸지 않은 것을 선택
  • 쉽게 구할 수 있고 쉽게 사라지지 않을 솔루션을 선택 (의존성이 적은 것을 선택)

범용성이 높다는 것은 여기저기 다양한 용도로 쓸 수 있는가를 말합니다. Python이 범위가 가장 넓고 좋습니다. R은 범용적으로 쓸 수 없는 것은 아니지만 실제로는 통계 또는 데이터분석에만 적합하다고 보는 것이 맞습니다. 사실 R은 범용적으로 쓸 수 없다고 해야 더 정직한 답변일 것입니다.

현재 데이터과학자들이 많이 쓰는 컴퓨터 언어는 Python, R순입니다. SAS나 Julia같은 것도 많이 씁니다만 Julia는 아직 사용자 층이 두텁지 않습니다. 그 외에 다른 일반 컴퓨터 랭귀지는 데이터 분석, 데이터 과학을 하는데 적합하지 않습니다.

그래서 결국 선택할 것은 Python과 R로 좁혀집니다.

결국 이대로라면 Python을 쓰는 것이 좋습니다.

혹시 Java나 C++ 같은 저수준 랭귀지로는 데이터분석이나 데이터과학을 못하는가?

우선 이것부터 얘기하면 컴퓨터 랭귀지 중에 범용성이 가장 좋은 Java, C++, C# 같은 것들을 배우면 Python이나 R을 배우지 않아도 되는것 아닌가? 라는 의문일 것입니다.

결론을 말씀드리면 생산성이 너무 떨어져서 이 언어들로는 데이터 분석이나 데이터 과학을 빠르게 하기 어렵습니다.

못하는 것은 아닙니다만 효율이 떨어집니다.

그래도 저수준에 조금이라도 가까운 것은 Python입니다.

만약 C++를 할 수 있거나 후에 반드시 익히겠다면 R이든 Python이든 뭘 고르더라도 좋습니다. C++로 만든 모듈을 붙여 넣어서 R과 Python을 직접 강화시킬 수 있으니까요.

데이터 과학에서의 R과 Python의 공통점, 차이점, 장단점

대화형 작업의 중요성

대화형 작업(interactive working mode)이란 어떤 분석이나 모델을 만드는 코드를 처음부터 끝까지 다 작성한 후에 일괄 실행하는 것이 아니라 부분부분 완성해 가면서 완성한 부분 또는 일부만 실행해서 그 결과를 계속해서 확인하고 고치는 방식을 말합니다.

데이터 분석과 모델링에서는 이 대화명 작업이 필수입니다. 잘못된 것, 예상한 것과 다르게 된 것, 데이터에 클린징 작업, 모델링 작업은 처음부터 끝까지 주욱 흐름에 따라 코딩하고 한 두번 훑어 보고실행한다고 다 끝나지 않습니다. 계속해서 같은 코드를 반복해서 고치고 수정하고 결과를 보고는 것을 반복해서 보정해 나간 후 최종 완성합니다.

이 작업을 효율적으로 하려면 코드를 분할해서 작성한 부분까지 완성을 하고 다음 부분으로 넘어가는 것을 지원하는 것이 좋습니다.

여기에서는 R의 손을 들어주고 싶습니다.

R과 Python중 하나를 선택

아직도 선택을 못했겠지만 이 2개 중 하나를 선택해야 합니다.

앞서 설명한 바 있습니다만 R과 Python은 둘 다 모두 스크립트(script) 언어이면서 둘다 대화형 언어(Interpretor)이기도 합니다.

스크립트 언어라는 것은 C++이나 Java 처럼 컴파일을 하거나 중간코드를 빌드하지는 않는 것을 말하는 것이고 대화형 언어라는 것은 코드를 입력하고 그 결과를 즉시 확인할 수 있다는 것입니다.

그래서 가능하다면 R과 Python을 둘 다 하는 것이 훨씬 좋습니다. 하지만 R이 PYthon보다는 학습장벽이 매우 높기 때문에 둘 중에 어떤 것을 먼저해야 하냐고 묻는다면 Python을 먼저 선택하는 것이 대체로 유리합니다.

선택할 때 고려할 것

위에서 말씀드린 몇 개의 중요한 항목을

선택을 할 때 이렇게 하시면 됩니다.

  • 앞으로 통계 분석을 더 많이 하게 될 것 같다. R
  • 시각화가 편하고 빠르면 좋겠다. R
  • 일괄 처리 작업이나 텍스트마이닝 같은 처리도 하고 싶다. Python
  • 기계학습 모델을 자주 만들고 많이 만들것 같다. Python
  • 데이터 전처리와 이관, 자동화 같은 것도 해야 한다. Python
  • 최신 통계 패키지가 많아야 한다. R
  • 최신 기계학습 패키지가 많아야 한다. Python
  • 딥러닝을 해야 한다. Python
  • IOT도 해야 한다. Python
  • 시계열 분석, 수리 통계, 금융 분석 이런 고급 통계나 수학과 관련된 것을 할 것이다. R
  • 빅데이터 플랫폼들에 접속해서 비정형 데이터를 가져오거나 처리해야 한다. Python
  • 웹개발도 좀 해야 한다. Python
  • 웹개발도 해야 하지만 위젯 정도나 간단한 시각화 수준이면 된다. R (Shiny가 있으므로)
  • 주로 연구하고 논문쓰는 일을 많이 할 것 같다. R
  • 나는 의사이고 실험을 많이 한다. R
  • 분석 리포트를 많이 쓰거나 논문을 많이 써야 한다. R
  • 바이오인포메틱스이고 유전자 데이터 이런 일과 관련이 있다. Python
  • 클라우드의 자원 활용모 하게될 것 같다. Python

대부분 R과 Python 둘다 가능한 것이지 둘 중에 더 유리한 것 하나를 답으로 했습니다.

자 대체로 PYthon을 선택하면 된다는 쪽으로 보여집니다만 위에 열거한 것들에서 선택된 것의 숫자만 보고 그렇게 판단하시면 안됩니다.

R의 좋은 점

R을 옹호하는 입장이 되서 장점을 어필해보면.

R의 강점은 커뮤니티와 커뮤니티에서 제공되는 패키지가 있습니다. 최신 통계 분석, 알고리즘이나 기법들이 패키지가 가장 빨리 제공되고 있으며 품질도 상당히 좋습니다.

대부분 패키지를 만들어서 제공하시는 분들이 그 분야의 석박사이거나 교수들입니다. 100% 믿을 수 있는 것은 아니지만 보통은 쓰는 사라들보다 그 부분에 대해서는 훨씬 전문적인 분들이라서 믿고 쓸 수 있습니다.

또 패키지가 중앙집중식으로 엄격하게 관리되고 있습니다. 패키지가 등록될 때 절차도 까다롭고 검증도 까다롭습니다. 그래서 패키지가 작동하지 않는다거나 하는일이 거의없고 오래된 패키지들도 비교적 관리가 잘됩니다.

Python의 좋은 점

PYthon을 옹호하는 입장에서 장점을 어필해보면.

쓰는 사람이 워낙 많아서 자료를 구하기 쉽고 샘플 코드를 구하기도 쉽습니다.

랭귀지가 배우기 쉬운 편입니다. 물론 그렇다고 해서 책 한 권 읽고 바로 할 수 있을 만큼 젼짜 쉽다는 얘기는 아닙니다.

그래서 어떻게 뭘 하면 되는데?

“하는 일” 또는 “하려고 하는 일”의 직군이

  • 엔지니어, 개발자 쪽에 가깝다면 Python
  • 분석가, 연구원에 가깝다면 R
  • 과학자는 둘 다 해당됩니다. 둘 다 하면 좋고 둘 중 하나만 해도 됩니다. 적어도 지금은 말이죠.

작성한 코드의 실행 속도 문제

구현체의 성능은 Python이 R보다 빠릅니다. 단순하게 비교할 수는 없지만 작성한 코드의 실행 속도가 대부분 Python이 R보다 빠릅니다.

텍스트 데이터, 음성, 비디오 같은 비정형 처리는 Python도 느립니다만 R은 정말 느립니다. 물론 해결책이 없는 것은 아니지만 이런 것은 순수하게 R로 해결하기 어려운 경우가 많습니다.

물론 코드의 실행 속도가 데이터과학에 가장 중요한 요소는 아닙니다. 그리고 어차피 속도가 요구되는 고속 모듈들은 Python이나 R모두 C++작성된 것을 호출해서 사용하는 방식이 대부분입니다.

R은 편리를 위한 언어이지 처리 속도를 고려한 언어는 아닙니다. 물론 Python도 처리 속도가 빠른 언어가 아닙니다. 계산 속도가 빠른 것도 아닙니다.

계산 속도가 빠른 것은 Julia가 있습니다. 새로운 도전을 좋아하고 이렇 신문물에 선구자로 깃발꽂기를 좋아한다면 Julia를 해보는 것도 좋겠습니다.

Excel, Tableau, SAS, SPSS 같은 것들로는 데이터 과학을 할 수 없는가?

할 수 있습니다.

어떤 종류의 작업에 더 적합하고, 능숙한지에 따라 다릅니다. 중요한 사실은 훈련된 능숙한 데이터 과학자 일수록 사용할 수 있는 랭귀지가 툴이 많다는 것입니다.

데이터 과학은 데이터 과학 도구 사용법을 익히는 것이 아니라 데이터에서 원하는 사실을 찾고 그것을 토대로 좋은 결정을 하기 위해서 필요한 도구는 뭐든 가져다 쓰고 과학적인 결과를 얻어 내는 것입니다.

R과 Python 중 하나를 먼저 배우고 다른 것을 마저 배울때

두 언어는 만들어진 철학이 매우 다릅니다. 그래서 하나를 배우고 나면 다른 하나를 배우기가 어렵습니다. 배울 때나 사용할 때 각각 의 언어에 따라 사용자가 관점을 많이 바꿔야 이해할 수 있는 것들이 많기 때문입니다.

즉, 하나를 배우고 다른 하나를 배울 때 이점이 별로 없습니다. 오히려 방해가 될 수 있습니다.

그래서 R과 Python을 둘 다 배우는 것은 매우 어렵습니다.

Fatal Python error: _PySys_BeginInit: can't initialize sys module

Linux에서 Python을 소스코드로 빌드해서 설치하려고 할 때 위와 같은 메시지가 보이면서 빌드가 안될때가 있습니다.

원인은 랭귀지 설정이나 환경설정이 빌드에 맞지 않기 때문에 발생하는 것인데 일일히 원인을 찾아서 해결하기가 매우 번거롭습니다. 로케일 설정(locale)같은 것이나 몇개를 수정하면 된다는 글을 찾아 볼 수 있지만 생각만큼 잘 되지 않고 많은 시간을 허비해야 합니다.

가장 간단한 해결책은 root로 로그인 또는 su로 root 전환을 해서 빌드하면 됩니다. 빌드할 때 sudo를 사용해도 잘 되지 않으므로 확실하게 root로 로그인해서 빌드하면 됩니다.

Python 소스 컴파일에서 Error in `python': corrupted size vs. prev_size 에러

리눅스에 문제가 있거나 너무 오래된 버전의 리눅스 배포판을 사용할 때 Python source를 다운로드 받아서 빌드해야 하는 경우가 있습니다

이때 configure를 실행한 뒤 make 를 실행하면 다음과 같은 에러가 나올 수 있습니다.

해결책은 다음과 같이 하면 됩니다.

Ubuntu 14.04에 Python 3.7 설치하기

오래된 Ubuntu 14.04에 Python 3.7을 설치할 때 필요한 간단한 절차입니다. 이 글을 쓰는 시점에서의 최신 Ubuntu 18.04이고 곧 20.04 버전이 나올 예정입니다.

그리고 현재 Python은 3.7.x가 최신 버전인데 Ubuntu 14.04에는 3.6.x가 설치되어 있고 14.04에 3.7.x는 그냥은 설치되지 않습니다.

3.6.x를 그냥 쓰면 되지 않겠냐고 하겠지만 3.6과 3.7은 마이너 버전 하나의 차이로 보이지만 실제로는 많은 부분에서 차이가 있습니다. 성능, 보안, 문법과 같은 것들입니다. 최신 패키지들도 3.6에서는 오작동하는 사례가 많습니다.
3.7을 설치해서 사용하는 것이 좋습니다.

data.frame melt 시키기

테이블의 컬럼들을 한 컬럼으로 내리고 값을 따로 빼는 것을 melt(melting)라고 합니다.그 반대로 값을 컬럼으로 올리는  작업을 cast (casting)라고 합니다.
이런 것을 엑셀이나 DB에서는 pivot(pivoting 추축) 이라고도 하고 또 transform이라고도 말합니다.

R과 python에서 melt하는 간단한 코드 스니펫을 올립니다.  Google에 검색을 하면 다 나오는 것이지만 순전히 제 편의를 위해서 올려둡니다.

R은 특히 ggplot2를 사용할 때 facet을 쓰려면 melt된 상태여야 하는 것이 있어서 연습이 필요합니다만 늘 까먹습니다. (전 바보인가봐요)

R코드입니다.
다른 방법도 많지만 R은 reshape2 패키지를 쓰는 것이 편합니다.

python코드입니다.
python은 당연히 Pandas에 melt 함수가 있습니다.

 

numpy windows용 64bit 버전

Windows를 비롯해서 numpy를 설치하는 것이 쉬운일이 아닌데요.
그래서 따로 패키징된 것을 제공하는 곳이 몇군데 있습니다.
그중 대표적인 곳이 scipy.org 입니다.
numpy는 scipy.org에서 패키징된 버전을 받을 수 있도록 링크를 추천하고 있는데
32bit 버전만 제공하고 있습니다.
32bit용 numpy를 64bit python에 설치하게 되면 python이 없다고 에러메세지가 나옵니다.

  • numpy는 python에서 수학/과학 계산을 위해서 사용하는 라이브러리입니다.
  • scipy를 사용하기 위해서는 numpy가 필요합니다.

아래 사이트에서 공유하고 있습니다.
접속해서 OS와 Python 버전에 맞는 것을 선택해서 다운로드해서 실행하면 쉽게 설치할 수 있습니다.

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

사이트의 반응 속도 및 다운로드 속도가 조금 느립니다.