[Python, Data Mining] Как я дешево покупаю Apple, используя анализ данных
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Идея
Для меня техника Apple долгое время была недоступным продуктом. Однако, несколько лет назад, я открыл для себя пару идей которые позволяют мне покупать технику Apple за очень дешево, например новый MacBook для меня стоил всего лишь 20.000 рублей, AirPods вообще 800 рублей, последний iPhone — самый дорогой из списка: 30.000 рублей. Технику я всегда покупаю исключительно новую, но использую несколько правил как для ее покупки, так и для продажи. Продажи очень важная часть процесса, технику необходимо вовремя продавать; раньше я мог пользоваться техникой 4 года и позже просто оставлять свой старый iPhone — это не есть рационально с экономической точки зрения. Идея моего метода проста: минимизировать разницу между ценой покупки и ценой продажи.
В статье я покажу, как я пришел к оптимальной дате для покупки и продажи, используя статистику цен на технику предыдущих лет и парсинга сайтов с Б/У техникой. Отмечу, что этот процесс можно проделать для любой техники, я рассмотрю Apple.
Покупка
Покупка самая несложная часть. У меня очень простой алгоритм: я захожу на Яндекс Маркет и выбираю наименьшую цену, спустя максимум месяц после выхода нового устройства. Все. Конечно, это техника с «Горбушки», которую привезли из Европы или Америки, но единственное, что я теряю по сравнению с РСТ техникой это второй год гарантии, лично для меня -20% гораздо выгоднее, чем год дополнительной гарантии. (Пока писал статью бесплатно заменили один наушник AirPods Pro из-за того, что он трещал). В этом году я купил себе MacBook Pro за 80 тысяч и AirPods Pro за 16 тысяч, (продав предыдущий MacBook за 40 и купив за 60, а AirPods я вообще продал за 8(по отдельности правда)) ), покупая за 8800). Эти цены даже соотносятся с ценами в американском магазине Apple без налогов. Стоит отметить, что необходимо обязательно проверять технику перед покупкой: смотрите на серийный номер, совпадение его на телефоне и на коробке и различные другие элементы предосторожности при покупки техники на подобных рынках.
Продажа
Отмечу, что покупка техники это Импорт и происходит «сохранение» средств в долларах. Идея в том, что покупая MacBook за 80000 рублей, вы на самом деле покупаете его за $1200 и можете продать его на зарубежных площадках за доллары, то есть различные колебания курса рубля для моей модели будут несущественны. Тем не менее, я продавал всю технику на авито, так как валютный курс последние 4-5 лет был стабильный: 1$ = 65рублей.
В продаже самое главное выбрать удачное время: это и есть задача данный статьи, рассчитать наиболее прибыльное время покупки и продажи устройства.
Выбор устройства
Окей, я рассмотрю мою модель на примере iPad, который я планирую приобрести. Кстати, про iPhone — это один из самых невыгодных гаджетов — он стоит как MacBook, при этом не обладает необходимым для рабочей машины функционалом, а его стоимость, например мой XS, упала за год на 50%, резюмируя — iPhone покупать крайне невыгодно.
Парсинг авито
Я не нашел у Авито API, поэтому мне пришлось использовать Python и Selenium. Не самое стабильное решение, но вроде работает. Для начала попытаюсь подгрузить данные по запросу «iPad 11 PRO 64GB» и посмотреть, что там с ценами и проанализировать их. Мой код на Selenium выглядит следующим образом:
Код на Selenium
SPL
import csv
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
search = 'iPad Pro 11 64GB'
page = 1
with open('venv/{}data.csv'.format(search), 'w') as new_file:
# csv
fieldnames = ['Search key', 'Page', 'Price, RUB', 'Subway nearby']
csv_writer = csv.DictWriter(new_file, fieldnames=fieldnames, delimiter=',')
csv_writer.writeheader()
# prepare for parsing
chrome_options = Options()
chrome_options.add_argument("--headless") # we will not open selenium browser just not to slow your pc =D
website = 'https://www.avito.ru/moskva?q=' + str(search) + '&p=' + str(page)
driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
driver.implicitly_wait(10)
driver.get(website)
# shit to find
name = "h3[class='snippet-title']"
url = "a[class='snippet-link']"
price = "span[data-marker='item-price']"
address = "div[class='item-address']"
# itemlines
try:
driver.find_element_by_css_selector("div[class='item__line']") # check if selector exists
itemlines = driver.find_elements_by_css_selector("div[class='item__line']")
# code to execute
for el in itemlines:
try:
el.find_element_by_css_selector(address)
new_file.write(str(el.find_element_by_css_selector(name).text).replace(',', '') + ',' +
el.find_element_by_css_selector(url).get_attribute('href') + ',' +
el.find_element_by_css_selector(price).text + ',' +
str(el.find_element_by_css_selector(address).text).replace(',', '.'))
new_file.write('\n')
except:
new_file.write(str(el.find_element_by_css_selector(name).text).replace(',', '') + ',' +
el.find_element_by_css_selector(url).get_attribute('href') + ',' +
el.find_element_by_css_selector(price).text + ',' +
'None')
new_file.write('\n')
print('Data saved to CSV | {}.csv'.format(search))
except:
print('There are no items due to your request')
# global quit and log
print('Browser closed')
driver.quit()
Посмотрю, что в итоге получилось в табличке:
Табличка
SPL
Достаточно много выбросов — очевидно, что iPad Pro с игрой Fortnite без возникшего инфоповода никогда бы не стоил 120000, ровно как и iPad с «заблокированной материнкой» за 4500. Если кратко, надо подчистить дату и убрать все ненужное, чтобы это уже можно было анализировать.
Анализ данных
Теперь предстоит достаточно тривиальный анализ — открываю jupyter notebook и импортирую pandas — начинаю работать с данными. Окей, первое что я хочу сделать убрать значок рубля, который остался в табличке при парсинге.
data['Price, RUB'] = data['Price, RUB'].str.replace("₽", "")
Теперь хотелось бы, чтобы столбик «Price, RUB» был в формате int32.
data['Price, RUB'] = data['Price, RUB'].str.replace(' ', '')
data['Price, RUB'] = data['Price, RUB'].astype('int32')
Оставляю только те позиции, которые дороже 30000 и дешевле 68000. (цена нового iPad Pro).
data = data[data["Price, RUB"] > 30000]
data = data[data["Price, RUB"] < 68000]
Теперь можно просто посчитать среднее.
data["Price, RUB"].mean()
Cредняя цена на б/у iPad Pro 11 64 GB = 48382рублей
В целом достаточно логичное значение, единственное, что меня смутило — большое стандартное отклонение. Теперь посмотрю на iPad Pro 2017 года. (до этого я искал только iPad 2018 год выпуска, указав диагональ — 11).
Мой search это:
search = 'iPad PRO 10.5 2017 64Gb WIFI'
Cредняя цена на iPad Pro 2017 года 10.5 WIFI 64 GB = 25888рублей
Посчитать цены использования очень просто.
2 года использования iPad PRO 2018 = (62000 — 48382) / 2 = 13675рублей (6837.5 в год)
3 года использования iPad PRO 2017 = 36112 рублей (12037 в год)
В начале статьи я написал цену своих устройств, имея ввиду конечно разницу их покупки и продажи, как видно можно купить iPad Pro и пользоваться им два года всего лишь за 13675 рублей. Именно так и стоит покупать технику и держать в голове разницу между ценой покупки и ожидаемой продажи.
Разница на цены различных iPad в год почти в два раза, при том наибольшее снижение стоимости происходит сразу после покупки и в n-ый год, где n цифра, зависящая от выхода нового поколения, времени работы аккумулятора, развития новых технологии, поддержки новой OC и так далее. Какой вывод можно сделать, анализируя данные про iPad? iPad выгодно продавать спустя 2 года и покупать новый, так можно минимизировать траты на его использование.
Почему продавать необходимо спустя 2 года
В каждом из устройств Apple встроен Литий-ионный аккумулятор, срок службы которого и составляет 2-3 года, в зависимости от использования. После истечения времени, устройство начинает работать некорректно: тормозить, быстро разряжаться и т.д. Кcтати, в Америке Apple продает iPhone по контракту ровно на 24 месяца, скорее всего из-за аккумулятора.
Почему Apple стоит продавать до презентации
Здесь все еще логичнее: новая презентация = новые устройства и поэтому старые снижаются в цене. Чтобы было более понятно — график от bankmycell.
Выводы
1. При покупке необходимо учитывать разницу между ценой покупки и ожидаемой ценой продажи.
2. Стоит посмотреть исторические цены продажи устройства.
3. Анализ данных на примере iPad показывает, что его выгоднее продать спустя 2 года.
4. Из-за литий-ионных аккумуляторов продавать устройство лучше всего спустя 2, максимум 3 года.
5. Apple рационально продавать до презентации — так будет наиболее прибыльно.
6. В моей модели не были учтены такие важные факторы как: наличие нового дизайна, поддержка ОС и новых технологий(5G например), и другие факторы.
Источники
[1]. Lithium-Ion Battery Maintenance Guidelines. URL: www.newark.com/pdfs/techarticles/tektronix/LIBMG.pdf. Accessed 26.08.2020
[2]. CELL PHONE DEPRECIATION & PRICE DROPS. URL: www.bankmycell.com/blog/phone-depreciation. Accessed 26.08.2020
===========
Источник:
habr.com
===========
Похожие новости:
- [Python, *nix, Разработка на Raspberry Pi] Киоск Raspberry Pi для графического интерфейса на Kivy
- [Python, Работа с 3D-графикой, Искусственный интеллект] 3D ML. Часть 3: датасеты и фреймворки в 3D ML
- [Python, Анализ и проектирование систем] Анализ сетей с использованием графов
- [Разработка под iOS, Законодательство в IT, IT-компании] Суд временно запретил Apple банить разработчиков Epic и ограничивать использование Unreal Engine на iOS и Mac
- [Python, JavaScript, Java, Swift, Изучение языков] 7 Ultimate Programming languages For Mobile App Development
- [Python, Data Mining, Машинное обучение, Искусственный интеллект, Natural Language Processing] Проект Natasha. Набор качественных открытых инструментов для обработки естественного русского языка (NLP)
- [Big Data, Машинное обучение, Data Engineering] Расширение возможностей Spark с помощью MLflow (перевод)
- [Разработка веб-сайтов, Разработка под iOS, IT-компании] Apple отказалась от претензий к WordPress за отсутствие покупок внутри приложения
- [Python, Data Mining, OpenStreetMap, Открытые данные] Как найти количество всех букв на всех знаках вида «въезд в город Х» в стране? Точный способ ответить на такие вопросы
- [Управление персоналом, Карьера в IT-индустрии] Бесплатные образовательные курсы: бэкенд-разработка
Теги для поиска: #_python, #_data_mining, #_python3, #_apple, #_ipad, #_ekonomika (экономика), #_deshevo (дешево), #_iphone, #_analiz_dannyh (анализ данных), #_data_science, #_python, #_data_mining
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:21
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Идея Для меня техника Apple долгое время была недоступным продуктом. Однако, несколько лет назад, я открыл для себя пару идей которые позволяют мне покупать технику Apple за очень дешево, например новый MacBook для меня стоил всего лишь 20.000 рублей, AirPods вообще 800 рублей, последний iPhone — самый дорогой из списка: 30.000 рублей. Технику я всегда покупаю исключительно новую, но использую несколько правил как для ее покупки, так и для продажи. Продажи очень важная часть процесса, технику необходимо вовремя продавать; раньше я мог пользоваться техникой 4 года и позже просто оставлять свой старый iPhone — это не есть рационально с экономической точки зрения. Идея моего метода проста: минимизировать разницу между ценой покупки и ценой продажи. В статье я покажу, как я пришел к оптимальной дате для покупки и продажи, используя статистику цен на технику предыдущих лет и парсинга сайтов с Б/У техникой. Отмечу, что этот процесс можно проделать для любой техники, я рассмотрю Apple. Покупка Покупка самая несложная часть. У меня очень простой алгоритм: я захожу на Яндекс Маркет и выбираю наименьшую цену, спустя максимум месяц после выхода нового устройства. Все. Конечно, это техника с «Горбушки», которую привезли из Европы или Америки, но единственное, что я теряю по сравнению с РСТ техникой это второй год гарантии, лично для меня -20% гораздо выгоднее, чем год дополнительной гарантии. (Пока писал статью бесплатно заменили один наушник AirPods Pro из-за того, что он трещал). В этом году я купил себе MacBook Pro за 80 тысяч и AirPods Pro за 16 тысяч, (продав предыдущий MacBook за 40 и купив за 60, а AirPods я вообще продал за 8(по отдельности правда)) ), покупая за 8800). Эти цены даже соотносятся с ценами в американском магазине Apple без налогов. Стоит отметить, что необходимо обязательно проверять технику перед покупкой: смотрите на серийный номер, совпадение его на телефоне и на коробке и различные другие элементы предосторожности при покупки техники на подобных рынках. Продажа Отмечу, что покупка техники это Импорт и происходит «сохранение» средств в долларах. Идея в том, что покупая MacBook за 80000 рублей, вы на самом деле покупаете его за $1200 и можете продать его на зарубежных площадках за доллары, то есть различные колебания курса рубля для моей модели будут несущественны. Тем не менее, я продавал всю технику на авито, так как валютный курс последние 4-5 лет был стабильный: 1$ = 65рублей. В продаже самое главное выбрать удачное время: это и есть задача данный статьи, рассчитать наиболее прибыльное время покупки и продажи устройства. Выбор устройства Окей, я рассмотрю мою модель на примере iPad, который я планирую приобрести. Кстати, про iPhone — это один из самых невыгодных гаджетов — он стоит как MacBook, при этом не обладает необходимым для рабочей машины функционалом, а его стоимость, например мой XS, упала за год на 50%, резюмируя — iPhone покупать крайне невыгодно. Парсинг авито Я не нашел у Авито API, поэтому мне пришлось использовать Python и Selenium. Не самое стабильное решение, но вроде работает. Для начала попытаюсь подгрузить данные по запросу «iPad 11 PRO 64GB» и посмотреть, что там с ценами и проанализировать их. Мой код на Selenium выглядит следующим образом: Код на SeleniumSPLimport csv
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.options import Options search = 'iPad Pro 11 64GB' page = 1 with open('venv/{}data.csv'.format(search), 'w') as new_file: # csv fieldnames = ['Search key', 'Page', 'Price, RUB', 'Subway nearby'] csv_writer = csv.DictWriter(new_file, fieldnames=fieldnames, delimiter=',') csv_writer.writeheader() # prepare for parsing chrome_options = Options() chrome_options.add_argument("--headless") # we will not open selenium browser just not to slow your pc =D website = 'https://www.avito.ru/moskva?q=' + str(search) + '&p=' + str(page) driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) driver.implicitly_wait(10) driver.get(website) # shit to find name = "h3[class='snippet-title']" url = "a[class='snippet-link']" price = "span[data-marker='item-price']" address = "div[class='item-address']" # itemlines try: driver.find_element_by_css_selector("div[class='item__line']") # check if selector exists itemlines = driver.find_elements_by_css_selector("div[class='item__line']") # code to execute for el in itemlines: try: el.find_element_by_css_selector(address) new_file.write(str(el.find_element_by_css_selector(name).text).replace(',', '') + ',' + el.find_element_by_css_selector(url).get_attribute('href') + ',' + el.find_element_by_css_selector(price).text + ',' + str(el.find_element_by_css_selector(address).text).replace(',', '.')) new_file.write('\n') except: new_file.write(str(el.find_element_by_css_selector(name).text).replace(',', '') + ',' + el.find_element_by_css_selector(url).get_attribute('href') + ',' + el.find_element_by_css_selector(price).text + ',' + 'None') new_file.write('\n') print('Data saved to CSV | {}.csv'.format(search)) except: print('There are no items due to your request') # global quit and log print('Browser closed') driver.quit() Посмотрю, что в итоге получилось в табличке: ТабличкаSPLДостаточно много выбросов — очевидно, что iPad Pro с игрой Fortnite без возникшего инфоповода никогда бы не стоил 120000, ровно как и iPad с «заблокированной материнкой» за 4500. Если кратко, надо подчистить дату и убрать все ненужное, чтобы это уже можно было анализировать. Анализ данных Теперь предстоит достаточно тривиальный анализ — открываю jupyter notebook и импортирую pandas — начинаю работать с данными. Окей, первое что я хочу сделать убрать значок рубля, который остался в табличке при парсинге. data['Price, RUB'] = data['Price, RUB'].str.replace("₽", "")
Теперь хотелось бы, чтобы столбик «Price, RUB» был в формате int32. data['Price, RUB'] = data['Price, RUB'].str.replace(' ', '')
data['Price, RUB'] = data['Price, RUB'].astype('int32') Оставляю только те позиции, которые дороже 30000 и дешевле 68000. (цена нового iPad Pro). data = data[data["Price, RUB"] > 30000]
data = data[data["Price, RUB"] < 68000] Теперь можно просто посчитать среднее. data["Price, RUB"].mean()
Cредняя цена на б/у iPad Pro 11 64 GB = 48382рублей В целом достаточно логичное значение, единственное, что меня смутило — большое стандартное отклонение. Теперь посмотрю на iPad Pro 2017 года. (до этого я искал только iPad 2018 год выпуска, указав диагональ — 11). Мой search это: search = 'iPad PRO 10.5 2017 64Gb WIFI'
Cредняя цена на iPad Pro 2017 года 10.5 WIFI 64 GB = 25888рублей Посчитать цены использования очень просто. 2 года использования iPad PRO 2018 = (62000 — 48382) / 2 = 13675рублей (6837.5 в год) 3 года использования iPad PRO 2017 = 36112 рублей (12037 в год) В начале статьи я написал цену своих устройств, имея ввиду конечно разницу их покупки и продажи, как видно можно купить iPad Pro и пользоваться им два года всего лишь за 13675 рублей. Именно так и стоит покупать технику и держать в голове разницу между ценой покупки и ожидаемой продажи. Разница на цены различных iPad в год почти в два раза, при том наибольшее снижение стоимости происходит сразу после покупки и в n-ый год, где n цифра, зависящая от выхода нового поколения, времени работы аккумулятора, развития новых технологии, поддержки новой OC и так далее. Какой вывод можно сделать, анализируя данные про iPad? iPad выгодно продавать спустя 2 года и покупать новый, так можно минимизировать траты на его использование. Почему продавать необходимо спустя 2 года В каждом из устройств Apple встроен Литий-ионный аккумулятор, срок службы которого и составляет 2-3 года, в зависимости от использования. После истечения времени, устройство начинает работать некорректно: тормозить, быстро разряжаться и т.д. Кcтати, в Америке Apple продает iPhone по контракту ровно на 24 месяца, скорее всего из-за аккумулятора. Почему Apple стоит продавать до презентации Здесь все еще логичнее: новая презентация = новые устройства и поэтому старые снижаются в цене. Чтобы было более понятно — график от bankmycell. Выводы 1. При покупке необходимо учитывать разницу между ценой покупки и ожидаемой ценой продажи. 2. Стоит посмотреть исторические цены продажи устройства. 3. Анализ данных на примере iPad показывает, что его выгоднее продать спустя 2 года. 4. Из-за литий-ионных аккумуляторов продавать устройство лучше всего спустя 2, максимум 3 года. 5. Apple рационально продавать до презентации — так будет наиболее прибыльно. 6. В моей модели не были учтены такие важные факторы как: наличие нового дизайна, поддержка ОС и новых технологий(5G например), и другие факторы. Источники [1]. Lithium-Ion Battery Maintenance Guidelines. URL: www.newark.com/pdfs/techarticles/tektronix/LIBMG.pdf. Accessed 26.08.2020 [2]. CELL PHONE DEPRECIATION & PRICE DROPS. URL: www.bankmycell.com/blog/phone-depreciation. Accessed 26.08.2020 =========== Источник: habr.com =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:21
Часовой пояс: UTC + 5