1. 標準ライブラリ
1.1. 値
データ型 | 例 | 説明 |
---|---|---|
int | 120 | 整数 |
float | 3.1415 | 浮動小数点数 |
str | "test" | 文字列 |
bool | True,False | 真偽値 |
1.2. データタイプ
データ操作 | 例 | 説明 |
---|---|---|
list | ["test1","test2"] | 要素を変更・追加・削除ができる |
tuple | ("test1","test2") | 要素を変更・追加・削除することはできない |
dict | {"one":1,"two":2} | キーとなる値(key)とバリューとなる値(value)をセットで1つの要素として持つことができる |
function | lambda x:2*x | 名前を持たない無名関数を作成 |
1.3. 四則演算
演算子 | 例 | 説明 |
---|---|---|
+ | a + b | 足し算 |
- | a - b | 引き算 |
* | a * b | 掛け算 |
/ | a / b | 割り算 |
// | a // b | 整数割り算 |
% | a % b | 割り算あまり |
** | a ** b | べき乗 |
1.4. 比較演算子
演算子 | 例 | 説明 |
---|---|---|
== | a == b | aとbが等しいとき True |
!= | a != b | aとbが等しくないとき True |
> | a > b | aがbより大きいとき True |
>= | a >= b | aがb以上のとき True |
< | a < b | aがbより小さいとき True |
<= | a <= b | aがb以下のとき True |
1.5. 論理演算子
演算子 | 例 | 説明 |
---|---|---|
and | a and b | aかつbの両方がTrueのとき True |
or | a or b | aまたはbのどちらかがTrueのとき True |
not | a not b | aがFalseのとき True |
1.6. 複合代入演算子
演算子 | 例 | 説明 |
---|---|---|
+= | a += b | a = a + bと同じ |
-= | a -= b | a = a - bと同じ |
*= | a *= b | a = a * bと同じ |
/= | a /= b | a = a / bと同じ |
//= | a //= b | a = a // bと同じ |
%= | a %= b | a = a % bと同じ |
** | a ** b | a = a ** bと同じ |
1.6. 条件分岐、繰り返し、例外処理
Pythonのfor文によるループ処理(range, enumerate, zipなど)
Pythonの例外処理(try, except, else, finally)
Pythonで多重ループ(ネストしたforループ)からbreak
if.py
# 条件分岐(if,elif,else)
if 条件式1:
`条件式1がTrueのときに行う処理`
elif 条件式2:
`条件式1がFalseで条件式2がTrueのときに行う処理`
elif 条件式3:
`条件式1, 2がFalseで条件式3がTrueのときに行う処理`
...
else:
`すべての条件式がFalseのときに行う処理`
# 繰り返し(for,while)
mylist = ["Orange", "Peach", "Lemon", "Apple"]
for val in mylist:
print("value:" + val)
while 条件1:
...
# 繰り返し + 条件分岐(break,continue)
# 条件によってfor文を途中で終了(break)
l = ['Alice', 'Bob', 'Charlie']
for name in l:
if name == 'Bob':
print('!!BREAK!!')
break
print(name)
# Alice
# !!BREAK!!
# 特定の要素の処理をスキップ(continue)
l = ['Alice', 'Bob', 'Charlie']
for name in l:
if name == 'Bob':
print('!!SKIP!!')
continue
print(name)
# Alice
# !!SKIP!!
# Charlie
#0から5まで1stepずづ
for i in range(6):
print(i)
print('\n')
#1から5まで1stepずづ
for i in range(1,6):
print(i)
print('\n')
#1から5まで2 stepずづ
for i in range(1,6,2):
print(i)
print('\n')
# 例外処理
try:
print(1 / 0)
except ZeroDivisionError:
print('Error')
# Error
1.7 list
list.py
# listに要素を追加する
list=[]
list.append("XX")
# すべての要素を削除
list.clear()
# インデックス・スライスで位置・範囲を指定して削除する
#リストの作成
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#リストのサイズ(要素数)を取得
print(len(l))
# 10
#リストを逆順にする
l.reverse()
print(l)
# [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(origin)
# [3, 5, 2, 4, 1]
del l[0] # 最初を削除
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[-1]
print(l) # 末尾を削除
# [1, 2, 3, 4, 5, 6, 7, 8]
l = [3, 1, 4, 5, 2]
# 昇順に並べる
l.sort()
print(l)
# [1, 2, 3, 4, 5]
# 降順に並べる
l.sort(reverse=True)
print(l)
# [5, 4, 3, 2, 1]
1.8 文字列操作
replace.py
# 置換
my_str = "あいうえお"
my_str = my_str.replace("うえ", "した")
print(my_str)
1.9 デバック
type()
を使用すると、オブジェクトの型を判定できる
type.py
print(type('string'))
# <class 'str'>
print(type(100))
# <class 'int'>
print(type([0, 1, 2]))
# <class 'list'>
デバック時に使用するコマンド、sys
のライブラリをimportする。
debug.py
import sys
#実行しているファイルが置いてあるpath
print(sys._getframe().f_code.co_filename)
#関数名
print(sys._getframe().f_code.co_name)
#実行している関数の先頭行
print(sys._getframe().f_code.co_firstlineno)
#コンパイルされたバイトコードそのままの文字列
print(sys._getframe().f_code.co_code)
#置いた場所の行数
print(sys._getframe().f_lineno)
2. pandasライブラリ
2.1 コマンド
pandas.py
# import
import pandas as pd
#import column側のヘッダーに名前を付ける。
df = pd.read_csv('xx.csv', names=['T','P','H','date','T1','P1','H1'])
#import データをinsertする。
df.insert(0, 'item', 'base')
df.insert(1, 'item1', 'comp')
#import 3行までのデータを出力、ファイルの確認
print(df[:3])
#指定したnameの出力
print(df['T'][0:3])
#指定したカラムの情報を取り出す。
df.to_csv('output/stack.csv', columns=['item','T'])
# データを追記する。
df.to_csv('output/stack.csv', mode='a', header=False, columns=['item1','T1'])
#print(df['T1'])
# int型のdfをstrに変換
df.['T1'].astype(str)
#データフレームのデータ型やメモリ使用量など
df.info()
# 行数を取得
len(df)
# 列数を取得
len(df.columns)
# 行数、列数を取得
df.shape
# 行数を取得
df.shape[0]
# 列数を取得
df.shape[1]
# indexをlist表示
print(df.index.to_numpy())
# columnをlist表示
print(df.columns.to_numpy())
# シリーズからリストへの変換 tolist()
s = pd.Series([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
s_to_list = s.tolist()
# 任意の要素を取得し、listに追加
list =[]
for i in range(len(df)):
get_list = df.iloc[i]['xx']
list.append(get_list .tolist())
# グループごとの統計情報を使ってすべての行を集計する
def transformation_sample(s):
return (s / s.sum() * 100).astype(str) + '%'
df.groupby(['city']).transform(transformation_sample)
2.1.2 dfの結合tiと分割
test.py
# keyを指定して結合
merged_df = df1.merge(df2, on='key')
# 複数のkeyでの結合
merged_df = df1.merge(df2, on=['key1', 'key2'])
# 条件を指定して分割
df1 = df[df['column1'] = 10]
2.1.1 リンク
Pandas の groupby の使い方
Pandas の transform と apply の基本的な違い
3. matplotlibライブラリ
3.1 コマンド
matplotlib.py
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
import pandas as pd
# 表の作榮
data = {
'Name': ["test", "test1"],
'Name': ["test", "test1"],
}
df = pd.DataFrame(data)
fig, ax = plt.subplots(figsize=(3, 3))
# 横軸の非表示
ax.axis('off')
ax.axis('tight')
tb = ax.table(cellText=df.values,
colLabels=df.columns,
bbox=[0, 0, 1, 1],
)
# テーブルの背景削除
tb[0, 1].set_facecolor('#ff0000')
tb[0, 2].set_facecolor('#ffff00')
# イメージの表示
plt.show()
3.2. 日本語対応
- パッケージのインストール
pip install japanize_matplotlib
- プログラムに"import japanize_matplotlib" を追加すると、日本語対応する。
3.1.1 リンク
matplotlibのめっちゃまとめ
文字列の表に色付するにはどうすれば良い?
4. tkinter
4.x. ウィジェット変数
変数の種類 | 説明 |
---|---|
StringVar | 文字列を扱う |
IntVar | 整数を扱う |
DoubleVar | 浮動小数点数を扱う |
BooleanVar | 真偽値(True / False)を扱う |
# ウィジェット変数を作成
str_var = tkinter.StringVar()
# ラベルウインドウにウィジェット変数を入れる
label = tkinter.Label(frame,textvariable=str_vstr_var)
label.pack()
# 5. osライブラリ
## 5.1 コマンド
```os.py
import os
# 特定のディレクトリのファイルの一覧を取得する
input_path = r"input"
files = os.listdir(input_path)
file_list = [f for f in files if os.path.isfile(os.path.join(input_path, f))]
# ファイル名、拡張子情報を取得する。
# os.path.splitext(img_file)[0] => 拡張子前の情報
# os.path.splitext(img_file)[1] => 拡張子
for imgfile in file_list:
if ".jpeg" == os.path.splitext(img_file)[1]:
print(os.path.splitext(imgfile)[0])
6. Imageライブラリ
6.1 コマンド
Image.py
from PIL import Image
# jpgからpngへのコンバート
img = Image.open(img_file).convert("RGB")
6.2 リンク
Will update the link someday.
x.その他
pip
x.sh
# パッケージのインストール
pip install <package-name>
# パッケージのバージョン指定インストール
pip install <package-name>==<version>
# パッケージリストの全表示
pip list
# 依存性チェック
pip check
# パッケージのアップデート
pip install -U <package-name>
# パッケージのバージョン確認
pip show <package-name>
7. groupby
7.1 コマンド
command | 説明 |
---|---|
SeriesGroupBy.apply(func, *args, **kwargs) | Apply function func group-wise and combine the results together. |
SeriesGroupBy.transform(func, *args[, ...]) | Call function producing a same-indexed Series on each group. |
DataFrameGroupBy.count() | Compute count of group, excluding missing values. |
DataFrameGroupBy.describe([percentiles, ...]) | Generate descriptive statistics. |
DataFrameGroupBy.max([numeric_only, ...]) | Compute max of group values. |
DataFrameGroupBy.mean([numeric_only, ...]) | Compute mean of groups, excluding missing values. |
DataFrameGroupBy.median([numeric_only]) | Compute median of groups, excluding missing values. |
DataFrameGroupBy.sum([numeric_only, ...]) | Compute sum of group values. |