1.
python tutorial 에서 https://developers.google.com/calendar/quickstart/python
quickstart.py 까지 실행하여 credentials.json 생성
2.
만들어진 코드를 사용 하여 event 생성하면 만들어짐
https://github.com/karenapp/google-calendar-python-api
3.
excel 과 integration 할 것이기 때문에 win32com.client 라이브러리로 excel 사용
2020년 4월 12일 일요일
2020년 4월 1일 수요일
python 가상환경
1. 가상환경을 만든다.
2. 가상환경을 사용한다.
1. 가상환경을 만든다.
option 1) python -m venv "내가상환경폴더이름"
- venv 라는 module 을 사용해서 가상환경을 만들어라
option 2) virtualenv "내가상환경폴더이름"
- option 1과 동일한 작업을 수행한다.
- python 과 virtualenv 를 바로 사용할 수 있는것은 내 컴퓨터에 해당 exe 가 있는 폴더가 환경변수 path 로 등록되었기 때문
2. 가상환경을 사용한다.
- 가상환경 폴더에 scripts 라는 폴더가 생기고 그 안에 python.exe 파일을 사용할 수 있다.
2. 가상환경을 사용한다.
1. 가상환경을 만든다.
option 1) python -m venv "내가상환경폴더이름"
- venv 라는 module 을 사용해서 가상환경을 만들어라
option 2) virtualenv "내가상환경폴더이름"
- option 1과 동일한 작업을 수행한다.
- python 과 virtualenv 를 바로 사용할 수 있는것은 내 컴퓨터에 해당 exe 가 있는 폴더가 환경변수 path 로 등록되었기 때문
2. 가상환경을 사용한다.
- 가상환경 폴더에 scripts 라는 폴더가 생기고 그 안에 python.exe 파일을 사용할 수 있다.
2019년 7월 20일 토요일
Visual Studio Code - Python
1. python 실행파일 경로 연결할 때
- settings.json 에서 경로를 지정해 준다.
2. Argument 줄 때
- launch.json 에서 아래와 같이 args 안에 순서대로 입력
3. file explorer 부를 때
- ctrl + shift + E
4. 모든 커맨드를 실행할 때
- ctrl + shift + p
- show all command 라고 부른다.
5. 특정 파일을 부를 때
- show all command 한 다음 launch.json 이나 settings.json 을 친다.
6. debug 진행
---
A debug toolbar appears along the top with the following commands from left to right: continue (F5), step over (F10), step into (F11), step out (Shift+F11), restart (Ctrl+Shift+F5), and stop (Shift+F5).
---
7. python version check
python -V
8. pyhton computer check
9. turtle 로 그림 그리기
1) turtle 로 라인 그리기
2) turtle 의 screen size 조정하기
3) turtle 의 origin 설정하기
4) pen color 설정하기
5) svg 이미지로 저장하기
6) svg 이미지를 png 로 변환하기 https://pypi.org/project/svglib/
- settings.json 에서 경로를 지정해 준다.
{
"python.pythonPath": "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python36\\python.exe",
"scm.alwaysShowActions": true,
"window.zoomLevel": -1,
"python.jediEnabled": false
}
2. Argument 줄 때
- launch.json 에서 아래와 같이 args 안에 순서대로 입력
"configurations": [
{
"name": "Python: Current File (Integrated Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": [
"-s",
"00003521"
],
"cwd": "${fileDirname}"
},
3. file explorer 부를 때
- ctrl + shift + E
4. 모든 커맨드를 실행할 때
- ctrl + shift + p
- show all command 라고 부른다.
5. 특정 파일을 부를 때
- show all command 한 다음 launch.json 이나 settings.json 을 친다.
6. debug 진행
---
A debug toolbar appears along the top with the following commands from left to right: continue (F5), step over (F10), step into (F11), step out (Shift+F11), restart (Ctrl+Shift+F5), and stop (Shift+F5).
---
7. python version check
python -V
8. pyhton computer check
$ python-32 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
('7fffffff', False)
$ python-64 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
('7fffffffffffffff', True)
9. turtle 로 그림 그리기
1) turtle 로 라인 그리기
2) turtle 의 screen size 조정하기
3) turtle 의 origin 설정하기
4) pen color 설정하기
5) svg 이미지로 저장하기
6) svg 이미지를 png 로 변환하기 https://pypi.org/project/svglib/
2016년 12월 29일 목요일
CANdb(.dbc file) python으로 parsing 하기
1. 개요
차량관련 업무를 하면 차량네트워크 통신(CAN, LIN, MOST, Ethernet 등)을 사용하게 되었습니다.
실제 H/W 를 물리지 않은 상태에서 Simulation 을 해야 할 때는 필수로 Vector 사에서 제공하는 S/W 인 CANoe 로 각 Node를 구성하고, 사용하는 통신에 맞는 H/W 를 연결하게 됩니다.
그리고 그 H/W 를 통해 Message(Signal로 구성) 를 Send(Tx), Receive(Rx) 를 하기 위하여 CANdb, IG block, CAPL Block 을 사용하게 됩니다.
이중 CANdb 는 일회적인 Message만이 아닌 Network 의 전반적인 주기적 통신을 포함합니다.
2. 본론
해당 .dbc 파일은 text 로 구성되어 있고 내용을 보면 역시 구조화가 되어 있다는 것을 볼 수 있습니다.
그래서 Parsing을 하면 되겠다 라고 생각했지만 아무래도 시간이 많이 걸릴 것 같은데다 제대로 할 수 있을지 의문이 들긴 했습니다;
그래서 Google 검색을 하니 역시 누군가가 만들어 놨더라구요.
package Github 링크
python package download
압출을 풀면 아래 내용이 나오며
python.exe setup.py install 명령을 통해
설치하면 여러가지 파일이 생성 되지만 지금 필요한 것만 소개하면
canconvert-script.py 파일 입니다.
3. 결론
.dbc 파일을 excel 혹은 csv 로 변경하고 싶으면 command line에서
"python.exe canconvert-script.py XXX.dbc XXX.csv"
이라고 명령을 주면
XXX.csv 파일이 생성 됩니다.
그 결과 원했던 대로 .dbc 파일 내용을 .csv 형태로 볼 수 있습니다.(.xlsx 은 csv->xlsx 변경만 하면 됩니다.)
전 검색하기 편해서 좋습니다.
차량관련 업무를 하면 차량네트워크 통신(CAN, LIN, MOST, Ethernet 등)을 사용하게 되었습니다.
실제 H/W 를 물리지 않은 상태에서 Simulation 을 해야 할 때는 필수로 Vector 사에서 제공하는 S/W 인 CANoe 로 각 Node를 구성하고, 사용하는 통신에 맞는 H/W 를 연결하게 됩니다.
그리고 그 H/W 를 통해 Message(Signal로 구성) 를 Send(Tx), Receive(Rx) 를 하기 위하여 CANdb, IG block, CAPL Block 을 사용하게 됩니다.
이중 CANdb 는 일회적인 Message만이 아닌 Network 의 전반적인 주기적 통신을 포함합니다.
.dbc 파일 CANdb++ 로 본 것 |
Vector에서 무료로 제공하는 CANdb++ 를 사용하여 내용을 이해할 수 있는데 Message가 많아질 경우 한눈에 보이지 않는 것을 느껴 평소 하는대로 엑셀(xlsx 혹은 csv)에 모든 데이터를 넣어서 참조하고 싶었습니다.
.dbc 파일 notepad 로 본 것 |
그래서 Parsing을 하면 되겠다 라고 생각했지만 아무래도 시간이 많이 걸릴 것 같은데다 제대로 할 수 있을지 의문이 들긴 했습니다;
그래서 Google 검색을 하니 역시 누군가가 만들어 놨더라구요.
package Github 링크
python package download
압출을 풀면 아래 내용이 나오며
python.exe setup.py install 명령을 통해
설치하면 여러가지 파일이 생성 되지만 지금 필요한 것만 소개하면
canconvert-script.py 파일 입니다.
3. 결론
.dbc 파일을 excel 혹은 csv 로 변경하고 싶으면 command line에서
"python.exe canconvert-script.py XXX.dbc XXX.csv"
이라고 명령을 주면
XXX.csv 파일이 생성 됩니다.
그 결과 원했던 대로 .dbc 파일 내용을 .csv 형태로 볼 수 있습니다.(.xlsx 은 csv->xlsx 변경만 하면 됩니다.)
전 검색하기 편해서 좋습니다.
2016년 7월 14일 목요일
Pandas 다루기 - Dataframe 값 접근/필터
Python에서 데이터 분석을 할 때 가장 편리한 것이 Pandas 라이브러리이고 가장 많이 사용하는 것이 Dataframe(2차원) 객체라고 이야기 하면서,
정작 필요할 때는 인터넷 검색으로 처음부터 다시 시작하고 있다는 것을 느끼고,
필수 적인것을 쓸 때마다 정리
1. Dataframe은 무엇인가: 2차원 배열로 row값(index), column값(header)를 가질 수 있는 자료구조, Pandas 라이브러리에 있다.
2. 어떻게 사용하는가 ( ① ~ ④ )
① 'import pandas as pd' 라고 선언한 후에 사용한다.
② 아래와 같이 df 를 만든다.
③ 컬럼 A 에 접근하는 방법은 여러가지가 있다.
④ 컬럼의 값으로 필터를 하려면 df 에 boolean(true, false) array를 주면 true만 볼 수 있다.
아래 코드는 A 컬럼의 값이 0 보다 작을 경우만을 필터하여 보여준다.
정작 필요할 때는 인터넷 검색으로 처음부터 다시 시작하고 있다는 것을 느끼고,
필수 적인것을 쓸 때마다 정리
1. Dataframe은 무엇인가: 2차원 배열로 row값(index), column값(header)를 가질 수 있는 자료구조, Pandas 라이브러리에 있다.
2. 어떻게 사용하는가 ( ① ~ ④ )
① 'import pandas as pd' 라고 선언한 후에 사용한다.
② 아래와 같이 df 를 만든다.
In [1]:
import pandas as pd
import numpy as np
In [2]:
dates = pd.date_range('7/14/2016', periods=8)
dates
Out[2]:
DatetimeIndex(['2016-07-14', '2016-07-15', '2016-07-16', '2016-07-17', '2016-07-18', '2016-07-19', '2016-07-20', '2016-07-21'], dtype='datetime64[ns]', freq='D')
In [3]:
df = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=['A', 'B', 'C', 'D'])
df
Out[3]:
A | B | C | D | |
---|---|---|---|---|
2016-07-14 | -0.184950 | -0.806392 | 1.494103 | -0.369560 |
2016-07-15 | 0.399724 | -0.063784 | -0.056321 | -0.007364 |
2016-07-16 | -0.626461 | -0.423751 | -0.018703 | 0.087733 |
2016-07-17 | 1.198658 | -1.532482 | -0.298002 | 0.634820 |
2016-07-18 | 0.312076 | -0.673361 | -0.141319 | -1.169763 |
2016-07-19 | -0.119623 | -0.293787 | -0.592312 | -1.167606 |
2016-07-20 | -0.158141 | 2.559673 | 0.949287 | -1.461863 |
2016-07-21 | 1.042477 | 0.968977 | 0.050709 | 1.789358 |
③ 컬럼 A 에 접근하는 방법은 여러가지가 있다.
In [4]:
df['A']
Out[4]:
2016-07-14 -0.184950 2016-07-15 0.399724 2016-07-16 -0.626461 2016-07-17 1.198658 2016-07-18 0.312076 2016-07-19 -0.119623 2016-07-20 -0.158141 2016-07-21 1.042477 Freq: D, Name: A, dtype: float64
In [5]:
df.A
Out[5]:
2016-07-14 -0.184950 2016-07-15 0.399724 2016-07-16 -0.626461 2016-07-17 1.198658 2016-07-18 0.312076 2016-07-19 -0.119623 2016-07-20 -0.158141 2016-07-21 1.042477 Freq: D, Name: A, dtype: float64
In [6]:
df.ix[:, 0]
Out[6]:
2016-07-14 -0.184950 2016-07-15 0.399724 2016-07-16 -0.626461 2016-07-17 1.198658 2016-07-18 0.312076 2016-07-19 -0.119623 2016-07-20 -0.158141 2016-07-21 1.042477 Freq: D, Name: A, dtype: float64
④ 컬럼의 값으로 필터를 하려면 df 에 boolean(true, false) array를 주면 true만 볼 수 있다.
아래 코드는 A 컬럼의 값이 0 보다 작을 경우만을 필터하여 보여준다.
In [7]:
df['A'] < 0
Out[7]:
2016-07-14 True 2016-07-15 False 2016-07-16 True 2016-07-17 False 2016-07-18 False 2016-07-19 True 2016-07-20 True 2016-07-21 False Freq: D, Name: A, dtype: bool
In [8]:
df [ df['A'] < 0 ]
Out[8]:
A | B | C | D | |
---|---|---|---|---|
2016-07-14 | -0.184950 | -0.806392 | 1.494103 | -0.369560 |
2016-07-16 | -0.626461 | -0.423751 | -0.018703 | 0.087733 |
2016-07-19 | -0.119623 | -0.293787 | -0.592312 | -1.167606 |
2016-07-20 | -0.158141 | 2.559673 | 0.949287 | -1.461863 |
2016년 3월 9일 수요일
(E+K) Python for Social Scientists(사회과학자를 위한 파이썬)
파이썬에 대해서 잘 정리해 놓은 블로그가 있어서 읽고, 일부를 한글로 옮겨 보았습니다.
가면 갈수록 더 좋은 Quality 의 블로그 들이 나오는 것 같군요.
언젠가 직접.. 깔끔한 블로그를 구성해 보고 싶네요 ㅎㅎ
언젠가 직접.. 깔끔한 블로그를 구성해 보고 싶네요 ㅎㅎ
---
Python for Social Scientists
This is a guest blog post by Nick Eubank,
a Ph.D. Candidate in Political Economy at the Stanford Graduate School of
Business
Python is an increasingly popular tool
for data analysis in the social scientists. Empowered by a number of libraries
that have reached maturity, R and Stata users are increasingly moving to Python
in order to take advantage of the beauty, flexibility, and performance of
Python without sacrificing the functionality these older programs have
accumulated over the years.
파이썬은 사회과학자들의 데이터 분석툴로서 점점 더 인기가 높아지고 있습니다.. 성숙도가 높은 많은 라이브러리들로 인하여 더욱 강해지고 있고, R과 Stata 사용자들도 오래된 툴들의 장점들을 잃지 않으면서도, 파이썬의 아름다움, 유연함, 그리고 성능 으로 대변되는 장점들을 취하기 위해서 파이썬으로 옮겨오고 있습니다.
파이썬은 사회과학자들의 데이터 분석툴로서 점점 더 인기가 높아지고 있습니다.. 성숙도가 높은 많은 라이브러리들로 인하여 더욱 강해지고 있고, R과 Stata 사용자들도 오래된 툴들의 장점들을 잃지 않으면서도, 파이썬의 아름다움, 유연함, 그리고 성능 으로 대변되는 장점들을 취하기 위해서 파이썬으로 옮겨오고 있습니다.
But while Python has much to offer,
existing Python resources are not always well-suited to the needs of social
scientists. With that in mind, I’ve recently created a new resource —www.pythonforsocialscientists.org (PSS)
— tailored specifically to the goals and desires of the social scientist python
user.
하지만 파이썬이 많은것을 제공하는 반면, 사회과학자들의 필요에 맞는 형태로는 있지 않습니다. 그런 생각을 바탕으로 최근에 저는 사회과학자들에 맞춘 새로운 싸이트를 만들었습니다.
The site is not a new
set of tutorials, however — there are more than enough Python
tutorials in the world. Rather, the aim of the site is to curate and annotate
existing resources, and to provide users guidance on what topics to focus on
and which to skip.
이 사이트는 새로운 형태의 tutorial 이 아닙니다, 파이썬 튜토리얼은 충분할 만큼 세상에 많이 있습니다. 대신에, 이 싸이트에서는 이미 있는 내용들을 모으고 자세한 설명을 해서 사용자들에게 어느 토픽에 집중을 해야 하고, 어떤 것에 하지 않을 것인지를 알리기 위함 입니다.
Social scientists – and indeed, most
data scientists – spend most of their time trying to wrestle individual,
idiosyncratic datasets into the shape needed to run statistical analyses. This
makes the way most social scientists use Python fundamentally different from
how it is used by most software developers. Social scientists are primarily
interested in writing relatively simple programs (scripts) that execute a
series of commands (recoding variables, merging datasets, parsing text
documents, etc.) to wrangle their data into a form they can analyze. And
because they are usually writing their scripts for a specific, idiosyncratic
application and set of data, they are generally not focused on writing code
with lots of abstractions.
사회과학자들은 – 그리고 대부분의 데이터 과학자들 – 많은 시간을 개별적이고, 특이한 데이터 세트를 통계적 분석이 가능하도록 변환 하는데 쓰고 있습니다. 이 부분이 사회과학자들이 파이썬을 쓰는 방법이 개발자들이 쓰는 것과 다른 이유 입니다. 사회 과학자들은 비교적 간단한 프로그램 명령 (변수 저장, 텍스트 문서를 구문 분석, 데이터 세트 병합 등)을 분석 할 수 있는 형태로 데이터를 다루는 일련의 명령 (스크립트) 작성에 주로 관심이 있습니다. 그들은 일반적으로 데이터의 특정, 특이한 프로그램과 데이터 세트에 대한 자신의 스크립트를 작성하기 때문에, 그들은 일반적으로 코드 작성시에 추상화에 초점을 맞추지 않습니다.
Social scientists, in other words, tend
to be primarily interested in learning to use existing toolseffectively,
not develop new ones.
다른말로 하면, 사회과학자들은 현재 있는 툴 들을 효율적으로 쓰는데 관심이 있다는 것입니다. 새로운 것을 만드는 것이 아니라.
Because of this, social scientists
learning Python tend to have different priorities in terms of skill development
than software developers. Yet most tutorials online were written for developers
or computer science students, so one of the aims of PSS is to provide social
scientists with some guidance on the skills they should prioritize in their
early training. In particular, PSS suggests:
이런 이유 때문에, 파이썬을 배우는 사회과학자들은 스킬을 익힐 때 소프트웨어 개발자들과는 다른 종류의 우선순위가 생깁니다. 하지만 온라인의 많은 튜토리얼들은 개발자나 컴퓨터 과학과의 학생들을 위한 것이기 때문에, PSS의 목표는 사회과학자들에게 파이썬 배울 때의 우선순위를 가이드 하려고 합니다. 구체적으로는
Need immediately:
- Data types: integers, floats, strings, booleans,
lists, dictionaries, and sets (tuples are kinda optional)
- Defining functions
- Writing loops
- Understanding mutable versus immutable data types
- Methods for manipulating strings
- Importing third party modules
- Reading and interpreting errors
Things you’ll want to know at some
point, but not necessary immediately:
- Advanced debugging utilities (like pdb)
- File input / output (most libraries you’ll use
have tools to simplify this for you)
Don’t need:
- Defining or writing classes
- Understanding Exceptions
즉시 필요:
- 데이터 타입: integer, float, string,
boolean, list, dictionary, and set (tuple 은 옵션)
- 함수 선언
- 루프
- Mutable 과 immutable 데이터 타입(const 를 이야기 하는 것 같음)
- 문자열을 다루는 방법들
- third party 모듈을 사용하는 법
- 에러를 해석하는 법
알면 좋음, 하지만 즉시는 아님:
- 높은 수준의 디버깅 하는 법 (pdb 같은 것)
- 파일을 읽고 쓰는 법 (대부분 라이브러리들에서 쉽게 쓸 수 있게 해 놓았다.)
필요 없음:
- 클래스 쓰는 법
- 예외처리 하는 방법
Today, most empirical social science
remains organized around tabular data, meaning data that is presented with a
different variable in each column and a different observation in each row. As a
result, many social scientists using Python are a little confused when they
don’t find a tabular data structure covered in their intro to Python tutorial.
To address this confusion, PSS does its best to introduce users to the pandas library
as fast as possible, providing links to tutorials and a few tips on gotchas to watch out
for.
현재, 대부분의 실증적인 사회과학은 표의 형태(row와 column이 각각 의미를 가지고 이들의 교차도 의미를 가지는)로 사용되고 있습니다. As a result, many social scientists
using Python are a little confused when they don’t find a tabular data
structure covered in their intro to Python tutorial. 이런 혼란을 해결하기 위해서, PSS는 최대한 빨리 pandas 라이브러리를 소개하려고 한다, 이 튜토리얼들과 팁들에 링크를 걸면서 ( 이 문단은 제대로 해석 안됨 )
The pandas library replicates much of
the functionality that social scientists are used to finding in Stata or R —
data can be represented in a tabular format, column variables can be easily
labeled, and columns of different types (like floats and strings) can be
combined in the same dataset.
Pandas 라이브러리는 사회과학자들이 주로 사용했었던 Stata 나 R 에서 사용했었던 기능들을 그대로 사용할 수 있도록 만들어져 있습니다. – 데이터는 표이며, 컬럼은 쉽게 이름이 붙을 수 있고, 컬럼에 서로 다른 타입이 들어있을 수 있는 것 (가량 소수, 문자열)
pandas is also the gateway to many other
tools social scientists are likely to use, like graphing libraries (seaborn and ggplot2)
and the statsmodels econometrics library.
Pandas는 사회과학자들이 많이 사용하는 다른 툴(그래프를 그리거나(seaborn, ggplot2)
계량경제학과 관련된 통계모델을 사용하는) 을 사용하도록 하는 gateway 입니다.
While all social scientists who wish to
work with Python will need to understand the core language and most will want
to be familiar with pandas, the Python eco-system is full of application-specific
libraries that will only be of use to a subset of users. With that in mind, PSS
provides an overview of libraries to help researchers working in different
topic areas, along with links to materials on optimal use, and guidance on
relevant considerations:
사회과학자들이 파이썬에서 가장 기본적인 내용과 pandas를 가지고 일하기를 원하기는 할테지만, 파이썬은 풍부한 기능을 가진 언어입니다. PSS에서는 각 분야의 연구자들이 사용할 수 있는 라이브러리 들도 공유 하려고 합니다..
- Network Analysis: iGraph
- Text Analysis: NLTK, and if needed
coreNLP
- Econometrics: statsmodels
- Graphing: ggplot and seaborn
- Big Data: dask and pyspark
- Geo-Spatial Analysis: arcpy or geopandas
- Making code faster: %prun in iPython (for
profiling) and numba (for JIT compilation)
This site is young, so we are anxious
for as much input as possible on content and design. If you have experience in
this area you want to share please drop me an email or comment on Github.
이 싸이트는 젊습니다. 그래서 내용과 전체 설계에 더욱 많은 input이 필요합니다. 당신이 만약 이 분야에 경험이 있고 그것을 공유하고 싶다면 나에게 이메일을 보내거나 Github에 코멘트를 남겨 주기 바랍니다.
Reference
원글: https://realpython.com/blog/python/python-for-social-scientists/
Python for Social Scientists: http://www.pythonforsocialscientists.org/
Reference
원글: https://realpython.com/blog/python/python-for-social-scientists/
Python for Social Scientists: http://www.pythonforsocialscientists.org/
피드 구독하기:
글 (Atom)