pandas-td0.8.0에 magic function이 도입되어 더욱 편리해졌습니다!
6757 단어 pandasJupyterTreasureData
pandas라든지가 뭔가 하는 이야기는 이쪽의 TreasureData와 Pandas와 Jupyter로 대화식으로 데이터를 시각화합니다. 를 봐 주세요.
그러나 pandas를 간단하게 말하면 통계 분석이라 할 수 있는 라이브러리이지만, 여러가지 데이터 소스에 접속하기 위한 인터페이스로 할 수 있어 편리합니다.
개인적인 유스 케이스로서는, 고객의 문의가 있으면, TD상의 로그라든지 RDB라든지로부터 필요한 정보를 가져와 붙이기도 합니다. 그리고는 그 조사한 결과를 jupyter를 사용하고 있으므로, github로 간단하게 공유할 수 있도록(듯이) 하고 있습니다.
그리고 이번 pandas-td 0.8에서 도입된 magic function 은 사전에 함수를 만들어 두면
%
, %%
만으로 그 함수를 호출할 수 있는 기능입니다.이것만으로는, 무엇이 편리한지 알기 어렵기 때문에, 실제로 사용해 봅시다.
지금까지
는, 아래와 같이 1개 1개의 접속 정보를 만들어, 함수를 사용해, 라고 copipe에서는 끝나지만 필요한 기재가 상당히 있어, 단지 SQL을 발행하는 것만으로도 Python력이 필요했습니다.
import os
import pandas_td as td
# Initialize connection
con = td.connect(apikey=os.environ['TD_API_KEY'], endpoint='https://api.treasuredata.com/')
engine = con.query_engine(database='sample_datasets', type='presto')
# Read Treasure Data query into a DataFrame.
df = td.read_td('select * from www_access', engine)
Magic Function을 사용하면
이것입니다.
%td_use sample_datasets
%%td_presto
select count(1) cnt
from nasdaq
게다가 %%td_use
뒤에 테이블명을 치면 스키마도 볼 수 있다
nasdaq
게다가 컬럼명의 탭 보관도 유효하게 된다!
%matplotlib inline
를 활성화하고 %%td_presto_plot
의 매직 코멘트로 쿼리를 던지면 즉시 시각화 해줍니다! !
편리.
어떻게 사용합니까?
import os
import pandas_td as td
# Initialize connection
con = td.connect(apikey=os.environ['TD_API_KEY'], endpoint='https://api.treasuredata.com/')
engine = con.query_engine(database='sample_datasets', type='presto')
# Read Treasure Data query into a DataFrame.
df = td.read_td('select * from www_access', engine)
이것입니다.
%td_use sample_datasets
%%td_presto
select count(1) cnt
from nasdaq
게다가
%%td_use
뒤에 테이블명을 치면 스키마도 볼 수 있다nasdaq
게다가 컬럼명의 탭 보관도 유효하게 된다!
%matplotlib inline
를 활성화하고 %%td_presto_plot
의 매직 코멘트로 쿼리를 던지면 즉시 시각화 해줍니다! !편리.
어떻게 사용합니까?
$ export TD_API_KEY=1234/abcd...
~/.ipython/profile_default/ipython_config.py
에 다음 내용을 저장한다.c = get_config()
c.InteractiveShellApp.extensions = [
'pandas_td.ipython',
]
어쩐지 말하지만,
이것만으로, 나머지는 Jupyter(ipython)를 기동시키면, 자동으로 로드되어 잡을 수 있게 되어요!
쿼리도!
탭 보관도!
간단한 시각화도!
아직 조금 귀찮은 곳
취득한 데이터의 캐릭터 라인이 길거나, 컬럼수가 많거나로 생략 표시되어 있는 경우에, 조금 컬럼의 데이터를 보고 싶을 때에,
일일이 커맨드 실행하는 것이 까다롭다.
지금은 to_csv에서 CSV 출력을하고 편집기에서 마지막으로 볼 수 있습니다.
그리고는, x = %td_databases
라고 하는 대입은 할 수 있지만, x = %%td_presto
라고 하는 방법으로 대입을 할 수 없기 때문에, 거기가 할 수 있는 방법이 있으면 기쁘다.
너무 스크립트적인 내용을 필요로 하는 경우에는 이것으로 충분하다고 하면 충분하네요.
짱짱.
보충
@k24d 씨에게 _
를 사용하면 이전 실행 결과의 값을 대입할 수 있거나 Out[5]의 결과를 대입할 수 있음을 가르쳐 주셨습니다.
즉, 아래에
%%td_presto
select
td_date_trunc('hour', time) as time,
COUNT(1) as code200_cnt
from
www_access
WHERE code = 200
group by
1
x = _
또는
x = Out[40]
에서 할 수 있었습니다!
편리! !
Reference
이 문제에 관하여(pandas-td0.8.0에 magic function이 도입되어 더욱 편리해졌습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toru-takahashi/items/74fe9f3cb97b6102165b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
취득한 데이터의 캐릭터 라인이 길거나, 컬럼수가 많거나로 생략 표시되어 있는 경우에, 조금 컬럼의 데이터를 보고 싶을 때에,
일일이 커맨드 실행하는 것이 까다롭다.
지금은 to_csv에서 CSV 출력을하고 편집기에서 마지막으로 볼 수 있습니다.
그리고는,
x = %td_databases
라고 하는 대입은 할 수 있지만, x = %%td_presto
라고 하는 방법으로 대입을 할 수 없기 때문에, 거기가 할 수 있는 방법이 있으면 기쁘다.너무 스크립트적인 내용을 필요로 하는 경우에는 이것으로 충분하다고 하면 충분하네요.
짱짱.
보충
@k24d 씨에게 _
를 사용하면 이전 실행 결과의 값을 대입할 수 있거나 Out[5]의 결과를 대입할 수 있음을 가르쳐 주셨습니다.
즉, 아래에
%%td_presto
select
td_date_trunc('hour', time) as time,
COUNT(1) as code200_cnt
from
www_access
WHERE code = 200
group by
1
x = _
또는
x = Out[40]
에서 할 수 있었습니다!
편리! !
Reference
이 문제에 관하여(pandas-td0.8.0에 magic function이 도입되어 더욱 편리해졌습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toru-takahashi/items/74fe9f3cb97b6102165b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
%%td_presto
select
td_date_trunc('hour', time) as time,
COUNT(1) as code200_cnt
from
www_access
WHERE code = 200
group by
1
x = _
x = Out[40]
Reference
이 문제에 관하여(pandas-td0.8.0에 magic function이 도입되어 더욱 편리해졌습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toru-takahashi/items/74fe9f3cb97b6102165b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)