Der Artikel des Vorfahren ist genug, aber für mich. Ich erinnere mich auch, dass die Daten von Sportdatenanalyse-Wettbewerb und Access stammen, und hoffe, dass sie den Teilnehmern helfen.
https://qiita.com/taro373/items/619e3385087279f72279
--Windows 10 1909 64-Bit-Version
pip
aus der Version, die mit Anaconda geliefert wurdeLaden Sie "Microsoft Access Database Engine 2010 Redistributable Components" herunter und installieren Sie es. https://www.microsoft.com/ja-jp/download/details.aspx?id=13255
AccessDatabaseEngine_X64.exe
) und es hat funktioniert.Eine Datenbank, die nur aus einer Tabelle mit dem Namen "T_1" mit dem folgenden Inhalt besteht
ID | field1 |
---|---|
1 | Testwert |
test.py
import pandas as pd
import pyodbc
#Liste der ODBC-Treiber im PC
print(pyodbc.drivers())
print()
#Zeichenfolge für die DB-Verbindung
#In der Zeichenkette "{}"Und"\Es ist also besser, eine rohe Zeichenkette zu verwenden
conn_str = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; ' +
r'DBQ=(Laufwerksname):\(Ordnernamen)\ ~ \Dateiname.accdb;'
)
#Verwenden Sie die Anweisung with, um die Datenbank sicher zu öffnen und zu schließen
with pyodbc.connect(conn_str) as conn:
#Bei Verwendung von DataFrame
print('*Bei Verwendung von DataFrame')
df = pd.io.sql.read_sql(r'select * from T_1', conn)
print(df)
print()
print('*Bei Verwendung eines Cursors')
with conn.cursor() as cur:
#Über jeden Tisch
for table_info in cur.tables(tableType='TABLE'):
#Inhalt mit select-Anweisung anzeigen
#Wenn Sie sowohl die rohe Zeichenfolge als auch die f-Notation verwenden möchten, "rf''Zu
cur.execute(rf'select * from {table_info.table_name}')
for row in cur.fetchall():
print(row)
['SQL Server', 'SQL Server Native Client 11.0', 'Microsoft Access Driver (*.mdb, *.accdb)', 'Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)', 'Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)', 'Microsoft Access Text Driver (*.txt, *.csv)']
*Bei Verwendung von DataFrame
ID field1
0 1 Testwert
*Bei Verwendung eines Cursors
(1, 'Testwert')
das ist alles.
Recommended Posts