Untitled

mail@pastecode.io avatar
unknown
plain_text
15 days ago
2.7 kB
0
Indexable
Never
import sqlite3
import pandas as pd

# Функция для подключения к базе данных
def connect_to_db(db_name):
    conn = sqlite3.connect(db_name)
    return conn

# Функция для получения данных из базы данных
def get_data_from_db(conn, query):
    return pd.read_sql_query(query, conn)

# Функция для сравнения данных с санкционным списком
def compare_with_sanction_list(data, sanction_list):
    return data[data['item'].isin(sanction_list)]

# Функция для сортировки списка методом пузырька
def bubble_sort(data, key):
    n = len(data)
    for i in range(n):
        swapped = False
        for j in range(0, n - i - 1):
            if data.iloc[j][key] < data.iloc[j + 1][key]:
                data.iloc[j], data.iloc[j + 1] = data.iloc[j + 1], data.iloc[j]
                swapped = True
        if not swapped:
            break
    return data

# Функция для фильтрации данных
def filter_data(data, column_name, threshold):
    # Пример фильтрации данных по условию
    filtered_data = data[data[column_name] > threshold]
    return filtered_data

# Функция для построения отчета
def build_report(data, output_file):
    data.to_csv(output_file, index=False)

# Основная функция
def main():
    # Подключение к базе данных
    conn = connect_to_db('database.db')
    
    # Получение данных из базы данных
    query = "SELECT * FROM export_import_data"
    data = get_data_from_db(conn, query)
    
    # Считывание санкционного списка
    sanction_list = pd.read_csv('sanction_list.csv')['item'].tolist()
    
    # Сравнение данных с санкционным списком
    data_for_analysis = compare_with_sanction_list(data, sanction_list)
    
    # Фильтрация данных
    filtered_data = filter_data(data_for_analysis, 'some_column', some_value) # замените 'some_column' и some_value на ваши
    
    # Ранжирование списка методом пузырька по популярности
    ranked_data = bubble_sort(filtered_data, 'popularity')
    
    # Построение отчета на основе ранжирования данных
    build_report(ranked_data, 'ranked_report.csv')
    
    # Закрытие подключения к базе данных
    conn.close()

if __name__ == "__main__":
    main()
Leave a Comment