python_for_analytics

Форк
0
/
1.5_HW_file_system.ipynb 
89 строк · 4.8 Кб
1
{
2
 "cells": [
3
  {
4
   "cell_type": "markdown",
5
   "id": "62678eff",
6
   "metadata": {},
7
   "source": [
8
    "## 5. Работа с файловой системой и модули\n",
9
    "\n",
10
    "1. Переведите содержимое файла purchase_log.txt в словарь purchases вида: {‘1840e0b9d4’: ‘Продукты’, …}\n",
11
    "\n",
12
    "2. Для каждого user_id в файле visit_log.csv определите третий столбец с категорией покупки (если покупка была, сам файл visit_log.csv изменять не надо). Запишите в файл funnel.csv визиты из файла visit_log.csv, в которых были покупки с указанием категории.\n",
13
    "\n",
14
    "Учтите условия на данные:\n",
15
    "\n",
16
    "содержимое purchase_log.txt помещается в оперативную память компьютера содержимое visit_log.csv - нет; используйте только построчную обработку этого файла\n",
17
    "\n",
18
    "## 5. Working with the file system and modules\n",
19
    "\n",
20
    "1. Translate the contents of the file purchase_log.txt in the dictionary purchases of the form: {‘1840e0b9d4’: ‘Products', ...}\n",
21
    "\n",
22
    "2. For each user_id in the visit_log.csv file, define the third column with the purchase category (if there was a purchase, the visit_log.csv file itself does not need to be changed). Write down in the funnel.csv file the visits from the visit_log.csv file, in which there were purchases indicating the category.\n",
23
    "\n",
24
    "Take into account the conditions for the data:\n",
25
    "\n",
26
    "content purchase_log.txt the contents of visit_log.csv are placed in the computer's RAM - no; use only line-by-line processing of this file"
27
   ]
28
  },
29
  {
30
   "cell_type": "code",
31
   "execution_count": 1,
32
   "id": "8f6dbfcc",
33
   "metadata": {},
34
   "outputs": [],
35
   "source": [
36
    "with open('purchase_log.txt','r', encoding='utf-8') as log: #откроем файл в необходимой кодировке\n",
37
    "    import json #импортируем библиотеку\n",
38
    "    new_log = [] #создадим пустой список\n",
39
    "    for line in log: #переберём строки в нашем файле\n",
40
    "        line = line.strip() #применим метод strip для удаления начальных и конечных символов\n",
41
    "        jsoned_log = json.loads(line) #приведём наши строки к Python-формату\n",
42
    "        new_log.append(jsoned_log) #добавим в пустой список new_log приведённые строки\n",
43
    "    log.close() #закроем наш файл, так как мы извлекли из него всё необходимое и он нам больше не нужен\n",
44
    "purchases_dictionary = {} #создадим пустой словарь (находиться в оперативной памяти)\n",
45
    "for logs in new_log:\n",
46
    "    purchases_dictionary[logs['user_id']] = logs['category'] #наполним наш словарь извлечёнными данными\n",
47
    "\n",
48
    "with open('visit_log.csv', 'r', encoding='utf-8') as visit: #откроем наш файл для чтения\n",
49
    "    with open('funnel.csv', 'w', encoding='utf-8') as funnel: #создадим новый файл funnel.csv\n",
50
    "        for line in visit: #переберём строки в нашем файле\n",
51
    "            line = line.strip().split(',') #применим методы strip и split, разбив по запятым на подстроки\n",
52
    "            if line[0] in purchases_dictionary.keys(): #если user_id в наших сущностях совпадают\n",
53
    "                line.append(purchases_dictionary[line[0]]) #соединим наши сущности исключая user_id\n",
54
    "                funnel.write(','.join(line)+\"\\n\") #запишем наши данные в файл funnel.csv применив метод join\n",
55
    "    visit.close() #закрываем файлы\n",
56
    "    funnel.close()"
57
   ]
58
  },
59
  {
60
   "cell_type": "markdown",
61
   "id": "0c21f6c4",
62
   "metadata": {},
63
   "source": [
64
    "![](Python_logo.png)"
65
   ]
66
  }
67
 ],
68
 "metadata": {
69
  "kernelspec": {
70
   "display_name": "Python 3 (ipykernel)",
71
   "language": "python",
72
   "name": "python3"
73
  },
74
  "language_info": {
75
   "codemirror_mode": {
76
    "name": "ipython",
77
    "version": 3
78
   },
79
   "file_extension": ".py",
80
   "mimetype": "text/x-python",
81
   "name": "python",
82
   "nbconvert_exporter": "python",
83
   "pygments_lexer": "ipython3",
84
   "version": "3.9.13"
85
  }
86
 },
87
 "nbformat": 4,
88
 "nbformat_minor": 5
89
}
90

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.