python メルカリ商品の売れ行き比率計算

既出情報のように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を書けます。これでパーセンテージを求めることができます。

雑感

今回はプログラムコードそのものよりも「比率」という数字の力の大きさを体感できたきがします。比率はプログラムを書かなくても、データさえあれば計算できるので、日常生活でも気づいたら使っていきたいところです。