Python初心者 無料で学習を極める(13)
前回までに、計3つの映画から画像をすべて保存することができました!
次のステップに進んでいこうと思います。次は、
私の好みの画像シーンにフラグを付け、傾向を記録してみましょう!
を行いたいと思います。それでは本日も宜しくお願い致します。
準備1:ファイルの種類確認
前回にダウンロードした画像のリストを取得しましょう。リストを取得する為には、OSライブラリのlistdir関数が使えるようです。早速やってみましょう。
# osモジュールをインポート
import os
import pandas as pd
# original_photoフォルダへのパスを入力し、そこのファイル名を抽出
path = "./original_photo"
files = os.listdir(path)
#一次元のデータフレームを作成する
s = pd.Series(files)
この結果、下記の様に出力され、ファイル名のデータフレームが出来ている事が確認できました。
0 howl001.jpg
1 howl002.jpg
2 howl003.jpg
3 howl004.jpg
4 howl005.jpg
...
145 mononoke046.jpg
146 mononoke047.jpg
147 mononoke048.jpg
148 mononoke049.jpg
149 mononoke050.jpg
Length: 150, dtype: object
準備2:ファイル名 と 拡張子を別に分ける
準備1で実施した結果を確認すると、ファイル名と拡張子情報がありますね。今後、データの傾向を確認することを考えると
「ファイル名」、「拡張子」 は分ける
方が良いように思いました。そこで、「ファイル名」と「拡張子」を分けることを実施します。ここでは、osライブラリのsplitext関数を用いて作成してみました。色々な方法があると思いますが、splitext関数で、ファイル名と拡張子に分離を行い、それぞれを一つのデータフレームとして保存し、まとめたデータフレームにしようと思います。
#拡張子まとめとファイル名まとめのデータフレームを作成
extention_matome = pd.Series(files)
extention_filename = pd.Series(files)
#ファイル個数分だけ繰り返し処理を行う
for i in range(len(s)):
#抽出したいファイル名の場所を指定
file_names = "original_photo/{}".format(s[i])
root_ext_name= os.path.splitext(os.path.basename(file_names))[0]
root_ext_pair= os.path.splitext(file_names)[1][1:]
#拡張子の情報をデータフレームに格納
extention_matome[i] = root_ext_pair
#ファイル名の情報をデータフレームに格納
extention_filename[i] = root_ext_name
#データフレームの結合及びカラム名の指定
df = pd.DataFrame({'filename':extention_filename,'extention':extention_matome})
上記を実施すると、df に対して、データがまとまっている事が確認できました!これで、事前にあるデータを確認できましたね。
準備3:判断軸の追加
準備2までで、データの集まりができましたので、こちらに判断軸など別の特徴を追加しましょう。後ほど、自分で確認をする必要があるため、最初は0の状態としましょうかね。
#my_judgeの追加
df=df.assign(my_judge=0)
この結果、下記の様になりました。
これで、自分の好みを記録する「my_judge」を追加出来ましたね。これで準備は完了!あとは、ここに数字を入れていくことを実施していきます。
データフレームをCSVファイルを出力
一つ一つ画像を見ながらでmy_judgeに情報を入力していくことはとても大変です。そのため、
上記のデータフレームをCSV化しCSVファイルの数値を変化させる
事を実施します。これで、簡単に処理が出来るようになりますね。下記がコードですが、、、
#dfのデータをoutput_pd.csv として、出力(日本語が含まれる場合はshift_jis)する
df.to_csv("output_pd.csv",encoding ="shift_jis")
df.to_csv("output_pd_mod.csv",encoding ="shift_jis")
めっちゃ簡単!笑
pandasの拡張性と言いますが、利便性といいますか、、凄すぎます。これで、output_pd.csvを作成することができました。また、前に記載した様に、CSVファイルを修正していくことを行うため、二つのCSVファイルを作成する様に致しました。
ここまでくるとあとは自分好みの画像にフラグ(my_judge=1)を立てる作業を実施していきましょう。これは、、、人海戦術です。笑。一つずつ自分で見ては決めて行くようにします。
それでは、次回は出来るか分かりませんが、
自分好みの傾向画像の特徴を分析してみましょう!
よろしければサポート頂けると幸いです!子供へのパパ時間提供の御礼(お菓子)に活用させて頂きます☆