Здесь много решений один:
df = df.groupby('Class')['ID'].apply(list).reset_index()
Class ID
0 (A, B, C) [1]
1 (H, A, D) [3, 4]
2 (M, E, F) [2]
Вы уже предложили pyodbc , и я собираюсь с вами согласиться.
Это дало мне наименьшее количество проблем в моем опыте; Я использовал pymssql и adodbapi , и когда те бросали исключения / создавали проблемы, я обменивал код и заменял его на pyodbc, и он либо исправлял проблему, либо выдавал ошибку сообщения, чтобы я мог отлаживать быстрее.
Стоит отметить, что я в основном использую его для подключения к MSSQL Server БД.
Я использую SQLAlchemy для доступа ко всем базам данных Python. Я настоятельно рекомендую SQLAlchemy.
SA использует pyodbc под капотом при подключении к базам данных SQL-сервера. Он использует другие библиотеки DBAPI для соединения с другой базой данных, например cx_Oracle.
Упрощенный пример, использующий SQLAlchemy, как если бы вы обычно использовали модуль DBAPI:
import sqlalchemy
engine = sqlalchemy.create_engine('sqlite:///database.db')
for r in engine.execute('SELECT * FROM T'):
print(r.OneColumn, r.OtherColumn)
Но реальная ценность SQLAlchemy заключается в его ORM и языке выражений SQL . Взгляните, это стоит усилий, чтобы научиться использовать.
Я использую pyodbc на работе, и он никогда меня не подводил (у нас есть разные базы данных). Он надежный и быстрый.
Он активно поддерживается, и скоро появится версия для Python 3.
Если вам нужно программное обеспечение для предприятий с платной поддержкой, вы можете использовать mxODBC.