csvをpandasに読み込んでデータフレームを保存して再利用するコード一連

csvからデータをpandasに読み込む

csvの一行目にカラム名を定義していない場合、別途、カラム名を定義したcsvを用意する。


import pandas as pd

# カラム定義用のCSVファイルパス
column_definition_file = "column_definition.csv"

# カラム定義のCSVファイルを読み込む
column_definition = pd.read_csv(column_definition_file, header=None).values[0]

# 元データのCSVファイルパス
data_file = "data.csv"

# CSVファイルを読み込む
df = pd.read_csv(data_file, names=column_definition)

# データフレームを表示
print(df)

カラム名の定義は以下のように一行のcsv

カラム名1,カラム名2,カラム名3
pandasデータフレームの保存

pickle(ピッケル)形式というバイナリーでデータを保存する。

データフレームを作成のところは、別にdfが展開済みであれば不要なので消す。


import pandas as pd

# データフレームを作成 (例として'your_column'というカラムがあるとします)
df = pd.DataFrame({'your_column': ['apple', 'banana', 'orange', 'apple pie', 'grape']})

# バックアップファイルのパス
backup_file_path = "backup_file.pkl"

# データフレームをバイナリ形式でファイルに保存
df.to_pickle(backup_file_path)

pickle(ピッケル)形式からpandasデータフレームを再展開

import pandas as pd

# バックアップファイルのパス
backup_file_path = "backup_file.pkl"

# ファイルからデータフレームを読み込み
df = pd.read_pickle(backup_file_path)

# データフレームを表示
print(df)

任意のカラムで文字列検索

キーワード検索。SQLで書くよりずっと速い。

5307285 rows x 30 columnsのデータから任意の文字列検索で1.3秒ほど。


import pandas as pd

def search_records(df, column_name, search_string):
    # 指定したカラム内の文字列を検索
    mask = df[column_name].str.contains(search_string, na=False)
    
    # 対象となったレコードの情報を表示
    result = df[mask]
    print(result)


# 検索対象のカラム名と文字列を指定して関数を呼び出し
column_to_search = 'name'
search_string = 'Bob'
search_records(df, column_to_search, search_string)