Python
import pandas as pd
import requests
# response =
# requests.get('https://docs.google.com/spreadsheets/d/1w2CmRYyux__ASmJlQgH6Nu-9stFycYaQeHC7OHHj2K4/gviz/tq?tqx=out%3Acsv&sheet=User_Sessions')
# assert response.status_code == 200, 'Wrong status code'
# print(response.content)


registrations = pd.read_csv('user_registrations.csv')
sessions = pd.read_csv('user_sessions.csv')
# url =
# requests.get('https://docs.google.com/spreadsheet/ccc?key=1w2CmRYyux__ASmJlQgH6Nu-9stFycYaQeHC7OHHj2K4&output=csv')
# registrations =
# pd.read_csv('https://docs.google.com/spreadsheets/d/1w2CmRYyux__ASmJlQgH6Nu-9stFycYaQeHC7OHHj2K4/gviz/tq?tqx=out%3Acsv&sheet=User_Registrations')
# sessions =
# pd.read_csv('https://docs.google.com/spreadsheets/d/1w2CmRYyux__ASmJlQgH6Nu-9stFycYaQeHC7OHHj2K4/gviz/tq?tqx=out%3Acsv&sheet=User_Sessions')

registrations['date_of_registration'] = pd.to_datetime(registrations['date_of_registration'])
sessions['date_of_session'] = pd.to_datetime(sessions['date_of_session'])

# Об'єднання двох таблиць за client_id
merged_data = pd.merge(sessions, registrations, on='client_id', how='left')

# Відбір сесій, що відбулися до реєстрації (останньої сесії перед реєстрацією)
filtered_sessions = merged_data[merged_data['date_of_session'] <= merged_data['date_of_registration']]

# Групування за user_id і вибір останньої сесії перед реєстрацією для кожного
# користувача
last_sessions_before_registration = filtered_sessions.sort_values('date_of_session').groupby('user_id').last().reset_index()

# Підрахунок кількості трафіку (сесій) і реєстрацій для кожного каналу
# (source_medium)
traffic_count = sessions.groupby('source_medium').size().reset_index(name='traffic_count')
registration_count = last_sessions_before_registration.groupby('source_medium').size().reset_index(name='registration_count')

# Об'єднання результатів
result = pd.merge(traffic_count, registration_count, on='source_medium', how='left')

# Запис результатів у файл
result.to_csv('traffic_and_registration_counts.csv', index=False)
File not found.
💡 To use files from your computer, upload them individually or click on the folder icon to open the folder you want to use.
line 9, in <module>
    registrations = pd.read_csv('user_registrations.csv')
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/pandas/io/parsers/readers.py", line 1024, in read_csv
    return _read(filepath_or_buffer, kwds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/pandas/io/parsers/readers.py", line 618, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/pandas/io/parsers/readers.py", line 1618, in __init__
    self._engine = self._make_engine(f, self.engine)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/pandas/io/parsers/readers.py", line 1878, in _make_engine
    self.handles = get_handle(
                   ^^^^^^^^^^^
  File "/lib/python3.12/site-packages/pandas/io/common.py", line 873, in get_handle
    handle = open(
             ^^^^^
FileNotFoundError: [Errno 44] No such file or directory: 'user_registrations.csv'