既出情報のように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を書けます。これでパーセンテージを求めることができます。
雑感
今回はプログラムコードそのものよりも「比率」という数字の力の大きさを体感できたきがします。比率はプログラムを書かなくても、データさえあれば計算できるので、日常生活でも気づいたら使っていきたいところです。

コメント