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)
カラム名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)