りんごが実る木

おなかすいた

関数の引数内の「*」の役割

コードを読んでいてなにこれ?ってなったので

ググり方わかんなかったから本に助けてもらった

可変長引数

任意の数の引数を指定して呼び出す

タプル型になって返ってくる

>>> def spam(ham, egg, *args):
             print('ham={}, egg={}, args={}, '.format(ham, egg, args))

>>> spam(1, 2, 3, 4, 5)
ham=1, egg=2, args=(3, 4, 5)


「**」にすると、辞書型に

>>> def spam(ham, egg, **kwargs):
             print('ham={}, egg={}, args={}, '.format(ham, egg, args))

>>> spam(ham=1, egg=2, sausage=3, tomato=4, beans=5)
ham=1, egg=2, kwargs={'sausage'=3, 'tomato'=4, 'beans'=5}


キーワード専用引数

「*」付きの引数後に指定された引数は、キーワード形式で値を指定する

位置パラメータでは値を指定できない

>>> def spam(*args, egg):
             print(args, egg)

>>> spam(1, 2, egg=3)
(1, 2) 3
>>>spam(egg=3)
() 3


また、「*」(名前のない引数)を指定した場合

「*」よりも右側に指定された引数は必ずキーワード引数として指定しなければならない

>>> def spam(ham, *, egg): # eggはキーワード引数
             print(ham, egg)

>>>spam(1, egg=2)
1 2
>>>spam(1, 2)
Traceback (most recent call last)

pandasでよく使いそうなの

  • unique()

要素を取り出す(重複を除く)

出力される型は一次元のNumPy配列ndarray型になる

Nanも含まれる

  • tolist()

リスト型に変換できる

  • reset_index()

インデックスを振り直す reset_index(drop=True)にすると、削除されたIndexオブジェクトの値を列データに挿入しない

reset_index(inplace=True)にすると、元のデータフレームに操作を反映する

  • dropna()

Nanを除外する

dropna(how='all')にするとすべての値がNanの行、axis=1を加えるとすべての値がNanの列が削除される

how='any'にすると、Nanが1つでもあると削除

  • fillna()

Nanを他の値に置換する

primary_keyあたりの事故

なぜか数時間いき詰まっていた。

カラムを追加するついでに

primary key付与、null許可せず、auto_incrementの設定が一度にできる方法。

alter table テーブル名 add カラム名 型 primary key not null auto_increment first;

時間返せ!!!!

MySQL基本的なコマンド

MySQL久々すぎて忘れてたのでメモ。

  • 使用するデータベースを選択

    use データベース名;

  • データベース一覧の確認

    show databases;

  • データベースを作成する

    create database データベース名;

  • データベースを削除する

    drop database データベース名;

  • カラムを追加する

    ALTER TABLE テーブル名 ADD カラム名 型;

  • カラムの名前と型を変更する

    ALTER TABLE 'テーブル名' CHANGE COLUMN '旧カラム名' '新カラム名' 型(サイズ等);

  • テーブルの中身のデータを削除する

    TRUNCATE テーブル名;

  • テーブルの確認をする

    show テーブル名;

  • テーブルのカラムを一覧表示する

    show fields from テーブル名;

  • データを取得する

    select カラム名 from テーブル名;

    なお、このコマンドの続きに\G;としてあげると、表示結果がレコードごとに綺麗に垂直に出てくれる。

    また、limit 10;とすると、取得するデータを10に抑えられる。

  • テーブルを削除する

    drop table テーブル名;