
こんにちは、ほけきよです。
pythonでデータを取り扱っているとき「あれ、これどうやるんだっけ??」ってなること、ありませんか?僕は10分に1回程度なります。
いや、覚えろと自分でも思うんですが、覚えられないんですよね。100回くらい同じコマンドを調べてたりする。物覚えが良くないので、ココを見れば絶対大丈夫なようにしておこうと思い、まとめてみました。
どうせ色々やっておくと、これらは必要になってくるので、もうはじめにコピペしておけばいい。
%matplotlib inlineimport jsonimport osimport pandasas pdimport numpyas npimport matplotlib.pyplotas pltimport scipyimport datetime
これ、100回くらい調べている。
from datetimeimport datetimeas dttstr1 ='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')
from datetimeimport datetimeas dttdatetime = dt.now()tstr1 = tdatetime.strftime('%Y-%m-%d')# 2018-1-18tstr2 = tdatetime.strftime('%Y/%m/%d %H:%M:%S')# 2018/1/18 12:34:56
now = datetime.now()tomorrow = now + datetime.timedelta(days =1)#今より1日後nextweek = now + datetime.timedelta(weeks =1)#今より一週間後
引数はseconds,minutes,days,weeks
import jsonorig_data = {"a":1,"b":2,"c":3}json_data = json.dumps(orig_data)# dict -> jsondict_data = json.loads(json_data)# json -> dict
# ファイルを開くwithopen('input.json')as f: json_data = json.load(f)# ファイルを保存(辞書形式のデータ)withopen('output.json','w')as f: json.dump(dict_data, f, indent=4)
どうやるんだっけ
import datetimeimport jsontime_data = {"now":datetime.datetime.now()}json_data = json.dumps(time_data)# dict -> json
TypeError: Object of type 'datetime' is notJSON serializable
解決策 : default引数に下記関数を与え、対応していない方に対するフォーマットを指定。
from datetimeimport datetimeimport jsontime_data = {"now":datetime.now()}defsupport_datetime_default(o):ifisinstance(o, datetime):return o.isoformat()raiseTypeError(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"}
df[df.a >0]# aというカラムが0より大きいものを抽出df[~df.a >0]# aというカラムが0より大きいもの"以外"を抽出
pythonの文法と違うので、注意。&,|を使うのと、カッコでくくっておくことが大事
df[(df.a>0) & (df.b>0)]# anddf[(df.a>0) | (df.b>0)]# or
df.replace([np.inf, -np.inf], np.nan)
列の名前は必須
import pandasas pdimport numpyas npA_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 c0 0.0 1.0 2.01 3.0 4.0 5.0"""
df.date=pd.to_datetime(df.date,format="%Y/%m/%d %H:%M:%S")
import codec が必要になることに注意
with codecs.open("file.csv","r","Shift-JIS","ignore")asfile: df = pd.read_table(file, delimiter=",")
色々あるけど、一番使うのは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 c0 0.0 1.0 2.01 3.0 4.0 5.0"""for rowin df_.iterrows():print(row[0],row[1]["a"])#取り出し方の癖に注意"""0 0.01 3.0"""
np.zeros(N)#N次元のゼロ配列np.zeros((N,M))#(N, M)のゼロ配列
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)]A[np.where(~np.isnan(A))]
まだある気がするのですが、とりあえず本当にいつも調べる者たちだけでもということでまとめておきました。随時メモ代わりに更新すると思います。
是非ご参考に!ではではっ
Copyright © 2017 PROCRASIST All Rights Reserved.
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。