logo

Code-lets

Category
Tags
  • CSV文字列を取得
    /

    ファイル名を指定せずにto_csvを呼び出す。

        csvstr = df.to_csv(index=False)
  • 二つの日付列から日数のフロート値を計算
    /
    1. 日付列を datetime 型に変換する。
    2. 二つの日付列の差を計算する。
    3. 計算した差を日数に変換する。
        import pandas as pd
    
    # サンプルデータフレームを作成
    data = {
        'start_date': ['2023-01-01', '2023-02-01', '2023-03-01'],
        'end_date': ['2023-01-10', '2023-02-10', '2023-03-10']
    }
    df = pd.DataFrame(data)
    
    # 日付列を datetime 型に変換
    df['start_date'] = pd.to_datetime(df['start_date'])
    df['end_date'] = pd.to_datetime(df['end_date'])
    
    # 日付の差を計算
    df['days_difference'] = (df['end_date'] - df['start_date']).dt.total_seconds() / (24 * 60 * 60)
    
    print(df)
    
          start_date   end_date  days_difference
    0 2023-01-01 2023-01-10              9.0
    1 2023-02-01 2023-02-10              9.0
    2 2023-03-01 2023-03-10              9.0
    
  • 対数グラフのプロット
    /
        import matplotlib.pyplot as plt
    import numpy as np
    
    # データの生成
    x = np.linspace(1, 100)  # 1から100までの数値
    y = np.log10(x)  # xの対数値
    
    # 対数グラフのプロット
    plt.plot(x, y)
    plt.xscale('log')  # X軸を対数スケールに設定
    plt.xlabel('X軸')
    plt.ylabel('Y軸(対数スケール)')
    plt.title('対数グラフの例')
    plt.show()
    
  • 固定値のテーブル
    /
        SELECT *
    FROM VALUES
            (1, 'Japan'),
            (2, 'USA'),
            (3, 'UK')
    ) AS c (id, country)
  • 指定した列の文字列が指定した文字列リストの中に含まれないレコードを抽出
    /
        import pandas as pd
    
    # サンプルデータの作成
    data = {
        'column_name': ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig', 'grape']
    }
    df = pd.DataFrame(data)
    
    # 指定する文字列リスト
    string_list = ['apple', 'banana', 'cherry']
    
    # 指定した列の文字列が指定したリストに含まれないレコードを抽出
    filtered_df = df[~df['column_name'].isin(string_list)]
    
    print(filtered_df)
    
  • 辞書の一部分を変更して新しい辞書を作成し、それを引数として渡す
    /

    この例では次のように処理が進みます:

    print_dict関数は、引数として渡された辞書をプリントします。
    original_dictという元の辞書が定義されています。
    print_dict関数を呼び出す際に、{**original_dict, 'city': 'San Francisco'}のような辞書展開を使用して、新しい辞書を作成し、それを関数に渡します。
    print_dict関数を再度呼び出し、{**original_dict, 'age': 35}のようにして、異なるキーの値を変更した新しい辞書を作成し、それを関数に渡します。
    この方法では、辞書展開を利用して簡潔に一部分を書き換えた新しい辞書を作成し、関数に渡すことができます。

        # 例として、辞書を引数として受け取る関数を定義
    def print_dict(d):
        print(d)
    
    # 元の辞書
    original_dict = {
        'name': 'Alice',
        'age': 30,
        'city': 'New York'
    }
    
    # 'city'キーの値を変更して辞書を渡す
    print_dict({**original_dict, 'city': 'San Francisco'})
    
    # 'age'キーの値を変更して辞書を渡す
    print_dict({**original_dict, 'age': 35})
    
  • 実行時にデバッガーで一時停止する
    /
        import pdb; pdb.set_trace()
  • 指定された列にNULLが含まれる行の数をカウント
    /
        SELECT COUNT(*) AS null_count
    FROM example_table
    WHERE target_column IS NULL;
    
  • DataFrameのインデックスをリセット
    /

    Pandasのデータフレームでは、各行にはインデックスが付与されており、このインデックスはデフォルトでは0から始まる整数値である。データのフィルタリングや並べ替えなどを行うと、インデックスが不連続になることがある。reset_index() メソッドを使用すると、インデックスを再び0から始まる連続した整数値にリセットすることができる。

    • df = : 結果を元の変数 df に再代入。
    • df.reset_index() : データフレーム df のインデックスをリセットする。
    • (drop=True) : 旧インデックスは新しい列としてデータフレームに追加されずに削除される。drop=False の場合(デフォルト)、旧インデックスはデータフレームに新しい列として保持される。
        df = df.reset_index(drop=True)
    
  • ファイアウォールにインバウンド通信を許可
    /
        New-NetFirewallRule -DisplayName "Allow-In-3000" -Direction Inbound -Protocol TCP -LocalPort 3000 -Action Allow