
ããã«ã¡ã¯ãã»ãããã§ãã
pythonã§ãã¼ã¿ãåãæ±ã£ã¦ããã¨ãããããããã©ããããã ã£ãï¼ï¼ã ã£ã¦ãªããã¨ãããã¾ãããï¼åã¯10åã«1åç¨åº¦ãªãã¾ãã
ãããè¦ããã¨èªåã§ãæããã§ãããè¦ããããªããã§ãããã100åãããåãã³ãã³ãã調ã¹ã¦ããããã ç©è¦ããè¯ããªãã®ã§ãã³ã³ãè¦ãã°çµ¶å¯¾å¤§ä¸å¤«ãªããã«ãã¦ãããã¨æããã¾ã¨ãã¦ã¿ã¾ããã
- jupyterã§æåã«éãã¨ãã«èªã¿è¾¼ãã¢ã¸ã¥ã¼ã«ãã¡
- datetime
- json
- pandas
- numpy
- matplotlib
- ã¾ã¨ã
jupyterã§æåã«éãã¨ãã«èªã¿è¾¼ãã¢ã¸ã¥ã¼ã«ãã¡
ã©ããè²ã ãã£ã¦ããã¨ããããã¯å¿ è¦ã«ãªã£ã¦ããã®ã§ãããã¯ããã«ã³ãããã¦ããã°ããã
%matplotlib inline import json import os import pandas as pd import numpy as np import matplotlib.pyplot as plt import scipy import datetime
datetime
æ¥ä»âæååã®å¤æ
ããã100åããã調ã¹ã¦ããã
- string ⨠datetime ãã©ã¼ãããã«æ°ãã¤ããã
from datetime import datetime as dt tstr1 = '2019-01-01 00:00:00' tdatetime = dt.strptime(tstr, '%Y-%m-%d %H:%M:%S') tstr2 = '2019/01/01 00:00:00' tdatetime = dt.strptime(tstr, '%Y/%m/%d %H:%M:%S')
- datetime ⨠string
from datetime import datetime as dt tdatetime = dt.now() tstr1 = tdatetime.strftime('%Y-%m-%d') # 2018-1-18 tstr2 = tdatetime.strftime('%Y/%m/%d %H:%M:%S') # 2018/1/18 12:34:56
datetimeã®è¶³ãç®å¼ãç®
now = datetime.now() tomorrow = now + datetime.timedelta(days = 1) #ä»ãã1æ¥å¾ nextweek = now + datetime.timedelta(weeks = 1) #ä»ããä¸é±éå¾
弿°ã¯seconds, minutes, days, weeks
json
dictåâjson
import json orig_data = {"a":1,"b":2,"c":3} json_data = json.dumps(orig_data) # dict -> json dict_data = json.loads(json_data) # json -> dict
jsonãã¡ã¤ã«ã®å ¥åºå
# ãã¡ã¤ã«ãéã with open('input.json') as f: json_data = json.load(f) # ãã¡ã¤ã«ãä¿å(è¾æ¸å½¢å¼ã®ãã¼ã¿) with open('output.json', 'w') as f: json.dump(dict_data, f, indent=4)
datetimeãjsonã«ããæãã¨ã©ã¼ãåºã
ã©ããããã ã£ã
import datetime import json time_data = {"now":datetime.datetime.now()} json_data = json.dumps(time_data) # dict -> json
TypeError: Object of type 'datetime' is not JSON serializable
解決ç : default弿°ã«ä¸è¨é¢æ°ãä¸ãã対å¿ãã¦ããªãæ¹ã«å¯¾ãããã©ã¼ããããæå®ã
from datetime import datetime import json time_data = {"now":datetime.now()} def support_datetime_default(o): if isinstance(o, datetime): return o.isoformat() raise TypeError(repr(o) + " is not JSON serializable") json_data = json.dumps(time_data, default=support_datetime_default) print(json_data)
{"now": "2019-01-17T21:09:03.966641"}
pandas
ï½ä»¥å¤ã表ããã¤
df[df.a > 0] # aã¨ããã«ã©ã ã0ãã大ãããã®ãæ½åº df[~df.a > 0] # aã¨ããã«ã©ã ã0ãã大ãããã®"以å¤"ãæ½åº
andã¨or
pythonã®ææ³ã¨éãã®ã§ã注æã&, |ã使ãã®ã¨ãã«ãã³ã§ããã£ã¦ãããã¨ã大äº
df[(df.a>0) & (df.b>0)] # and df[(df.a>0) | (df.b>0)] # or
infå¼¾ã
df.replace([np.inf, -np.inf], np.nan)
ãªã¹ããdfã«ãµã¯ãã¨å¤æ
åã®ååã¯å¿ é
import pandas as pd import numpy as np A_23 = np.linspace(0,5,6).reshape(2,3) #2è¡3å """ array([[0., 1., 2.], [3., 4., 5.]]) """ df_ = pd.DataFrame(A_23,columns=["a","b","c"]) #åãcolumnã«åãã.index=ã¯ä»»æ """ a b c 0 0.0 1.0 2.0 1 3.0 4.0 5.0 """
datetimeã¨ãã¦èªã¿è¾¼ã¿
- ãã©ã¼ãããã¯ãã¡ãã¨åããã¦ãã
df.date=pd.to_datetime(df.date,format="%Y/%m/%d %H:%M:%S")
èªã¿è¾¼ã¿æã«codecã®ã¨ã©ã¼ãåºã
import codec ãå¿
è¦ã«ãªããã¨ã«æ³¨æ
with codecs.open("file.csv", "r", "Shift-JIS", "ignore") as file: df = pd.read_table(file, delimiter=",")
DataFrameã®foræ
è²ã
ãããã©ãä¸çªä½¿ãã®ã¯iterrowãªæ°ããããårowã®0çªç®ã¯index, 1çªç®ã«ã¯ã¾ã¨ãã¦ãã¼ã¿ãã¼ãã«ãå
¥ã£ã¦ãã
A_23 = np.linspace(0,5,6).reshape(2,3) #2è¡3å df_ = pd.DataFrame(A_23,columns=["a","b","c"]) #åãcolumnã«åãã.index=ã¯ä»»æ """ a b c 0 0.0 1.0 2.0 1 3.0 4.0 5.0 """ for row in df_.iterrows(): print(row[0],row[1]["a"]) #åãåºãæ¹ã®çã«æ³¨æ """ 0 0.0 1 3.0 """
numpy
linspaceã¨arangeã®éã
- linspace : ç¯å²ã®æå®ãéè¦
- arange : å¹ ã®æå®ãéè¦
numpyã§ãµã¯ã£ã¨é å確ä¿
np.zeros(N) #N次å ã®ã¼ãé å np.zeros((N,M)) #(N, M)ã®ã¼ãé å
nanã®å¤å®
np.isnan(A)
æå¤§å¤ã¨ããã®å¼æ°
A = np.array([1,2,10,4,5]) print(A.max(),A.argmax()) """ 10 2 """
ã¼ãé¤ç®ã®åé¿
a = [1, 0, 2] b = [0, 0, 4] c = np.divide(a, b, out=np.zeros_like(a), where=b!=0) #
æ¡ä»¶ãæºãããã®ã ãæ½åº
b = a[np.where(a>3)]
- ã³ã³ã : nanãé¤å¤ããè¦ç´ ã ãæ½åºãããã¨ãã§ãã
A[np.where(~np.isnan(A))]
matplotlib
種ã ã®èª¿æ´
ã¾ã¨ã
ã¾ã ããæ°ãããã®ã§ãããã¨ããããæ¬å½ã«ãã¤ã調ã¹ãè ãã¡ã ãã§ãã¨ãããã¨ã§ã¾ã¨ãã¦ããã¾ãããéæã¡ã¢ä»£ããã«æ´æ°ããã¨æãã¾ãã
æ¯éãåèã«ï¼ã§ã¯ã§ã¯ã£
- ãã£ã¨èªã
ã³ã¡ã³ããæ¸ã