# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert

---Zweck--- Lesen Sie tägliche Änderungen wie Inventarinformationen aus der Datenbank und geben Sie sie in die angegebenen Daten ein Exportieren Sie im angegebenen Format.

Verwendeter Interpreter: Python3.8

--- Arbeitsumgebung des Posters ---    Windows10Pro 64Bit

Code

#!/usr/bin/env python
# -*- coding: utf-8 -*-

###Modul verwendet###
import sqlite3
import pandas as pd
import datetime

######Zeitstempel holen
ThisDate = datetime.datetime.today().strftime("%Y%m%d")

#CurStocks <<Variable für den Datenrahmen, der die Datenbank des referenzierenden Bestandsstamms enthält


######Konvertieren Sie den Bestandsinformationsstamm in den Bestandsreferenzdatenrahmen
#Hier werden die Daten der Referenzquelle aus der Datei im SQlite3-Format gezogen.
#Konvertieren Sie Ihr Lieblingsformat mit Pandas in einen Datenrahmen.

dbpath = 'C:/Referenzquelle/Stock SQLite/Zaiko.db' 
conn = sqlite3.connect(dbpath)
cursor = conn.cursor()
cursor=cursor.execute('SELECT * FROM TurnOver_Data') 
CurStocks = pd.DataFrame(cursor.fetchall())
CurStocks.columns=["index", "Produktname", "Produkt-CD", "Barcode", "Lager"]
conn.close()
#(Anmerkungen) ↑ Die obige Methode "Cursor".fetchall()""
#Der Titel der Spalte wird weggelassen, daher werde ich ihn später hinzufügen.
#Die Referenzquellendaten basieren auf dem obigen Spaltentitel.


######Bereiten Sie eine Datei im Sqlite-Format zum Gießen vor

print("● Aktualisieren Sie die Inventarkontaktdatei")
dbpath = 'C:/Gießziel/Kunde_Lager FMT.db'
conn = sqlite3.connect(dbpath)
df_files=("C:/Gießen Sie die Zielbasisdatei/Kunde_Lager FMT.xlsx")
#Ich erstelle eine separate Liste von Zielen in der Excel-Datei, aber in diesem Fall erhöht sich die Anzahl der Zielelemente usw.
#Aufgrund der Methode, eine Basisliste mit einer Excel-Datei zu erstellen und zur einfachen Wartung neu zu schreiben

df = pd.read_excel(df_files,encoding="cp932")
Chlist = (df["JAN"].transpose())
#df["JAN"].transpose()<<Die Daten von "JAN" werden so konvertiert, dass sie einzeln gelesen werden können.
#Die Spalte des Gießziels erhält den Titel "JAN", der der Leseschlüssel ist.


######Die Daten für die Bestandsreferenz werden nacheinander gedreht und referenziert.

for item in Chlist:
    CurStocksult = CurStocks.query('Barcode== @item')
    #Hier beziehen wir uns auf den JAN-Code, der der Schlüssel des zuvor erstellten Referenzquellendatenrahmens ist, und drehen ihn um.
    #Referenzquellenspalte: "Barcode" Gießziel: Spaltentitel "JAN"
    #Hier werden wir nacheinander aus dem Referenzquellendatenrahmen lesen.

    if len(CurStocksult) >= 1:
        #Bestandszählung: Wenn der Referrer-Frame über die JAN verfügt, beziehen Sie sich auf die Datenposition.
        CurStocksult = (CurStocksult.iat[0, 3])

        #Indexnummer abrufen (Datenposition der Liste des sekundären Arrays)
        DFindex=int(df.query('JAN == @item').index.astype("int64").values[0])

        if(CurStocksult) < 3 :
            Buf = 0
            df.iat[DFindex, 7] = "Mangel"
        else:
            Buf=CurStocksult
            df.iat[DFindex, 7] = ""
            
        df.iat[DFindex, 6]=Buf
        df.iat[DFindex, 8]=ThisDate
        #Die 6. Spalte des Gießziels ist die Lagerspalte, die 7. Spalte ist die Flaggenspalte und die 8. Spalte ist der aktualisierte Zeitstempel.

df.to_sql("Stock_Data", conn, if_exists="replace")
df.to_csv('C:/Aktualisierte Inventardaten.csv')
#Sqlite und CSV wurden aktualisiert.

conn.close()
print("● Update abgeschlossen")

del df
del df_files

Verstopfte Punkte usw.

1: Erstellen Sie eine Liste für die Schleifenverarbeitung Chlist = (df["JAN"].transpose()) Um die Liste der Gießziele einzeln zu verarbeiten, die Schlüsselliste der Gießziele Ich habe es so konvertiert, dass es in einer Schleife gedreht werden kann

2: Erfassung der Indexnummer DFindex=int(df.query('JAN == @item').index.astype("int64").values[0]) Konvertierungsprozess zum Abrufen der Datenposition (Y-Achse?) Aus der Liste der quadratischen Arrays

Recommended Posts

# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe Python> autopep8 ausprobiert
Ich habe Python> Decorator ausprobiert
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe L-Chika mit Razpai 4 (Python Edition) ausprobiert.
Ich habe Jacobian und teilweise Differenzierung mit Python versucht
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
Ich habe Funktionssynthese und Curry mit Python versucht
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe versucht, mit Python Faiss zu laufen, Go, Rust
Ich habe versucht, Deep Floor Plan mit Python 3.6.10 auszuführen.
Ich habe versucht, eine E-Mail mit SendGrid + Python zu senden
Ich habe versucht, mit Elasticsearch Ranking zu lernen!
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe einen Blackjack mit Python gemacht!
Ich habe versucht, eine CSV-Datei mit Python zu berühren
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Ich habe versucht, mit PyCaret zu clustern
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Zeichnen Sie gewaltsam so etwas wie ein Flussdiagramm mit Python, matplotlib
Ich habe die C-Erweiterung von Python ausprobiert
Mayungos Python-Lernfolge 1: Ich habe versucht, mit Druck zu drucken
Ich habe mit Python einen Blackjack gemacht.
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
Ich habe versucht, Kubernetes Pods / Helm Chart mit Pulumi (Python) bereitzustellen.
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich habe verschiedene Methoden ausprobiert, um japanische Post mit Python zu senden
Ich habe versucht, mit Python eine E-Mail von Amazon SES zu senden
Ich möchte so etwas wie Uniq in Python sortieren
Ich habe versucht, Movidius NCS mit Python von Raspberry Pi3 auszuführen
Ich habe versucht, Follow Management mit Twitter API und Python (einfach)
Mayungos Python Learning Episode 3: Ich habe versucht, Zahlen zu drucken
Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren
Ich habe versucht, Python zu berühren (Installation)
pyenv-vertualenv installiert die Python3-Serie nicht gut