Ich habe eine Funktion zum Abrufen von Daten aus der Datenbank spaltenweise mithilfe von SQL mit SQLite3 von Python [SQLite3, SQL, Pandas] erstellt.

Motivation

Normalerweise lerne ich nur maschinelles Lernen selbst, aber ich sehe oft Leute, die SQL-Kenntnisse auf Twitter usw. benötigen. Indem ich nach und nach parallel lerne, möchte ich es zu einer Funktion machen, indem zuerst Daten extrahiert werden.

In diesem Artikel werden wir:

Es tut mir leid, wenn Sie es bereits haben. SQL ist ein absoluter Anfänger, schauen Sie also bitte nach (-_-;)

Import von dem, was diesmal verwendet wird

import sqlite3
import pandas as pd
import pandas.io.sql as sql

Erstelle eine DB

Erstellen Sie eine Test-DB mit Pandas. Ich möchte einen Datenrahmen wie folgt erstellen. Der Wert ist angemessen. image.png

city = ["tokyo","kyoto","oosaka"]
num = [30,20,28]
df_1 = pd.DataFrame({"city":city,"number_of_city":num})
zu Datenrahmen-> Datenbank
path = "tamesi.db"
conn = sqlite3.connect(path)
cur = conn.cursor()
sql.to_sql(df_1,"study",conn,if_exists="replace",index=None)
cur.close()
con.close()

Dieses Mal habe ich es in einer Datenbank namens tamesi mit einer Tabelle namens study erstellt.

Erstellen Sie eine Funktion zum Abrufen der angegebenen Spalte

Ich machte.

def ret_column(db,table,column=""):
    assert bool(column), "no column is spcified"
    conn= sqlite3.connect(db)
    cur = conn.cursor()
    cur.execute("select {} from {}".format(column,table))
    val = cur.fetchall()
    cur.close()
    conn.close()
    return val

Tragen Sie das, was Sie herausnehmen möchten, in die Spalte ein und nehmen Sie es heraus. Ich habe versucht, einen Fehler zurückzugeben, wenn die Spalte nichts enthält. Wir rufen lediglich die SQL-Anweisung auf, indem wir db und table angeben.

Erstellen Sie eine Funktion zum Abrufen aller Daten

Erstellen wir eine Funktion, die alle Daten abruft. Ich machte.

def ret_all(db,table):
    conn = sqlite3.connect(db)
    cur = conn.cursor()
    cur.execute("select * from {}".format(table))
    val = cur.fetchall()
    cur.close()
    conn.close()
    return val

Dies war einfacher, da keine Spaltenbezeichnung vorhanden war.

Versuchen Sie es mit

path = "tamesi.db"
table="study"
val_1 = ret_column(path,table,column="city")
val_2 = ret_all(path,table)
print(val_1)
print(val_2)

#Ausgabe unten
[('tokyo',), ('kyoto',), ('oosaka',)]
[('tokyo', 30), ('kyoto', 20), ('oosaka', 28)]

Ich konnte bestätigen, dass es richtig herausgenommen wurde.

Ich werde versuchen, es zu instanziieren

Ich habe versucht, es einfach mit Klasse zu implementieren.

class ret_from_db():
    def __init__(self,db):
        self.db = db

    def ret_column(self,table,column=""):
        assert bool(column), "no column is spcified"
        conn= sqlite3.connect(self.db)
        cur = conn.cursor()
        cur.execute("select {} from {}".format(column,table))
        val = cur.fetchall()
        cur.close()
        conn.close()
        return val

    def ret_all(self,table):
        conn = sqlite3.connect(self.db)
        cur = conn.cursor()
        cur.execute("select * from {}".format(table))
        val = cur.fetchall()
        cur.close()
        conn.close()
        return val

Ich habe nur die ersten beiden zusammengeklebt, nichts Besonderes.

Ich habe es versucht
get_db = ret_from_db(db="tamesi.db")
val_1 = get_db.ret_column(table="study",column="city")
val_2 = get_db.ret_all(table="study")
print(val_1)
print(val_2)

#Ausgabe unten
[('tokyo',), ('kyoto',), ('oosaka',)]
[('tokyo', 30), ('kyoto', 20), ('oosaka', 28)]

Ich konnte es richtig machen.

das Ende

Ich weiß nicht, ob dies praktisch ist, weil ich es nicht benutzt habe (-_-;) Wenn es von Pandas gelesen werden kann, ist es einfacher, es für sklean usw. zu verwenden, also würde ich es gerne machen.

Recommended Posts

Ich habe eine Funktion zum Abrufen von Daten aus der Datenbank spaltenweise mithilfe von SQL mit SQLite3 von Python [SQLite3, SQL, Pandas] erstellt.
Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe versucht, die Datenbank (sqlite3) mit kivy zu verwenden
Ich habe eine einfache Mail-Sendeanwendung mit tkinter von Python erstellt
Ich habe versucht, einen Pandas-Datenrahmen zu erstellen, indem ich mit Python Informationen zum Lebensmittelrückruf abgekratzt habe
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, einen Generator zu erstellen, der mit Python eine C # -Containerklasse aus CSV generiert
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
[Pandas] Ich habe versucht, Verkaufsdaten mit Python zu analysieren. [Für Anfänger]
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen
Ich habe versucht, mit Go einen exklusiven Kontrollmechanismus zu erstellen
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
Ich habe versucht, mit einem Remote-Server über Socket-Kommunikation mit Python zu kommunizieren.
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Ich habe versucht, eine Clusteranalyse von Kunden anhand von Kaufdaten durchzuführen
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
Django super Einführung von Python-Anfängern! Teil 3 Ich habe versucht, die Vererbungsfunktion für Vorlagendateien zu verwenden
Ich möchte ein Spiel mit Python machen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Django super Einführung von Python-Anfängern! Teil 2 Ich habe versucht, die praktischen Funktionen der Vorlage zu nutzen
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
[Patentanalyse] Ich habe versucht, mit Python eine Patentkarte zu erstellen, ohne Geld auszugeben
[Python] Smasher hat versucht, den Video-Ladevorgang mithilfe eines Generators zu einer Funktion zu machen
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Ich habe versucht, eine verdächtige Person mithilfe von Geolonia-Adressdaten schnell zu einem MAP zu machen
[Python & SQLite] Ich habe den erwarteten Wert eines Rennens mit Pferden im 1x-Gewinnbereich ① analysiert
Ich habe versucht, mit Scrapy Daten von einer Website zu sammeln
Ich habe versucht, Daten aus einer Datei mit Node.js zu lesen.
Ich habe versucht, Python (3) anstelle eines Funktionsrechners zu verwenden
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
Ich habe versucht, mit Python Machine Learning ein Echtzeit-Modell zur Trennung von Tonquellen zu erstellen
Ich habe versucht, verschiedene Informationen von Remote-PC aus Python von WMI Library zu extrahieren
[Python] Ich habe versucht, automatisch einen täglichen Bericht über YWT mit Outlook-Mail zu erstellen
Ich habe versucht, Stückpreisdaten nach Sprache mit Real Gachi von Python zu aggregieren und zu vergleichen
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
Ich möchte viele Prozesse von Python aus starten
[Einführung in Pandas] Ich habe versucht, die Austauschdaten durch Dateninterpolation zu erhöhen ♬
Ich habe versucht, eine zufällige FizzBuzz-Spalte mit Blasensortierung zu sortieren.
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren
Ich habe mit PyQt einen einfachen Texteditor erstellt