既出情報のようにmatplotlibで可視化したいところでしたがめんどくさくなりやめ。(知識不足)
売れ行きの比率をもとめるには
メルカリの商品については python の BeautifulSoup で取得しています。こちらは前々回の記事に書いています。メルカリの商品は売り切れただった場合は、 figcaption というhtmlタグがついています。これを正規表現であるかないかを確認して、
データを取得するようにしています。
次に今回のテーマである「売れ行きの比率」です。比率を求めるには、とりあえず商品の合計を求める必要があります。それがあると比率が計算できますね。
サンプルコード
import pandas as pd import pprint def sold_or_nosold(price_list, sold_list, price_size): for price, sold in zip(price_list, sold_list): if price_size <= int(price) and price_size + 10000 > int(price) and sold == "figcaption": yield "sold" if price_size <= int(price) and price_size + 10000 > int(price) and pd.isnull(sold): yield "nosold" df = pd.read_csv('product.csv') price_list = df['price'] sold_list = df['elem'] sol_count = 0 no_sol_count = 0 price_size_list = [0, 10000, 20000, 30000, 40000, 50000] for price_size in price_size_list: for s in sold_or_nosold(price_list, sold_list, price_size): if s == "sold": sol_count += 1 elif s == "nosold": no_sol_count += 1 sum = sol_count + no_sol_count pprint.pprint(str(price_size) + " sum: " + str(sum) + " sol_count: " + str(sol_count) + " no_sol_count: " + str(no_sol_count) + " sol_count_ratio: " + str(round(sol_count/sum, 2) * 100) + "%" + " no_sol_count_ratio: " + str(round(no_sol_count/sum, 2) * 100) + "%") sol_count = 0 no_sol_count = 0
このコードは〇万円代の商品の売れ行きをそれぞれ計算します。price_size_listはリストになっているので、好きな金額をいれれば、〇万円台の売れ行きを表示してくれます。
今回わりと重要なのは ratio(比率) をもとめることで、 ratio はいわゆる何パーセントというやつです。比率はグラフにしなくても数字を見ると結構驚きがあります(なんていえばいいかわらかない)
売り切れ商品個数 / 全体の商品個数で計算すると浮動小数点になるので、round()で四捨五入にしつつ100を書けます。これでパーセンテージを求めることができます。
雑感
今回はプログラムコードそのものよりも「比率」という数字の力の大きさを体感できたきがします。比率はプログラムを書かなくても、データさえあれば計算できるので、日常生活でも気づいたら使っていきたいところです。
コメント