見出し画像

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)

この結果、下記の様になりました。

データフレーム記録2

これで、自分の好みを記録する「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")

めっちゃ簡単!笑

データフレーム記録3

pandasの拡張性と言いますが、利便性といいますか、、凄すぎます。これで、output_pd.csvを作成することができました。また、前に記載した様に、CSVファイルを修正していくことを行うため、二つのCSVファイルを作成する様に致しました。

ここまでくるとあとは自分好みの画像にフラグ(my_judge=1)を立てる作業を実施していきましょう。これは、、、人海戦術です。笑。一つずつ自分で見ては決めて行くようにします。

それでは、次回は出来るか分かりませんが、

自分好みの傾向画像の特徴を分析してみましょう!


よろしければサポート頂けると幸いです!子供へのパパ時間提供の御礼(お菓子)に活用させて頂きます☆