[PYTHON] Codekonvention, Methodenkorrespondenztabelle

#python

--sql

[]( "Bestellung zur Anzeige auf dieser Seite" python pandas numpy matplotlib Andere sql R )

[]( Wie schreibe ich diese Seite?

# # # # Große Überschrift: Beispiel "Codekonvention", "Methodenkorrespondenztabelle"

# # Überschriften: "Spalten extrahieren", "Einige Datensätze extrahieren"

‘‘‘ python Code Kommentar ・ Schreiben Sie alle Kommentare hier, nicht in den Text )

Code Konventionen_Regeln für jede Sprache

python

python_code Konvention
#python
df_used_method1_used_method2\
    = df.copy()\
        .used_method1()\
        .used_method2()\
Wie schreibe ich .py
1.Beschreibung der Funktion selbst
"""Schreiben Sie hier eine Beschreibung"""

2.Bibliotheksimport
import pandas as pd

3.Variablen angeben
START_DATE = 20200527

4.main()Definition der in
def func1(parameter1:str) -> pd.DataFrame:

5.main()Definition von
def main()

6.
if __name__ == "main":
    main()
Wie schreibe ich eine Funktion
def func1(parameter_path:str, parameter_date:int, parameter_df:pd.DataFrame) -> pd.DataFrame:
    """
Schreiben Sie eine Dokumentzeichenfolge
    """

Wie schreibe ich argparse
#main()Es scheint notwendig, wenn man ein Argument aufnimmt
So schreiben Sie die Protokollierung

SQL

--sql
select
    datamart1.column1
    , datamart1.column2
    , datamart2.column3
from
    datamart1
        left join
    datamart2
        on = column2
where
    datamart1.column1 > 10
;

select
    column1
    , column2
    , sum(column3)
    , avg(column4)
from
    datamart1
group by
    column1
    , column2
;

SQL-Regeln

Methodenkorrespondenz table_data Analyse bezogen

Datenverständnis / Datenaufbereitung von Tabellendaten

Überprüfung, ob der Schlüssel eindeutig ist
#python

--sql

Überprüfung doppelter Datensätze
#python

--sql

Säulenextraktion
#python

#Im Serienformat extrahiert
df.loc[:,'column']

df['column']

df.column

#Im Datenrahmenformat extrahiert
df.loc[:,['column1','column2']]

df[['column1','column2']]
--sql
select
    column1
from
    datamart
;

select
    *
from
    datamart
;
Extrahieren Sie einige Datensätze
#python
df.head(10)
--sql
select top(10)
    column1
from
    datamart
;

select
    column1
from
    datamart
limit
    10
;
Spalten ohne Duplizierung extrahieren
#python
df.drop_duplicates()
--sql
select unique
    *
from
    datamart
;
Spalte hinzufügen
#python
df_assign\
    = df.copy()\
        .assign(column = 10)

df['column'] = 10
--sql
select
    10 as column1
from
    dataframe
;
Extrahieren Sie Datensätze, die den Bedingungen entsprechen
#python
df_query_loc\
    = df.copy()\
        .query('column1 == 10')\
        .loc[:,['column1','column2']]

df[df.column1 == 10, ['column1','column2']]
--sql
select
    column1
from
    datamart1
where
    column1 == 10
;

select
    column1
    , count(column1)
from
    datamart1
group by
    column1
having
    count(column1) == 10
;
Spaltennamen ändern
#python
df.rename(columns = {'column1':'new_column1','column2':'new_column2'})

pd.DataFrame(df.values, columns = ['new_column1','new_column2'])

df.columns = ['new_column1','new_column2']

df.columns = 'new_' + df.columns
--sql
select
    column1 as new_column1
from
    datamart1
;
Kombiniere df
#python
pd.merge(
    df1,
    df2,
    on = ['column1','column2'],
    how = 'left')

pd.merge(
    df1,
    df2,
    left_on  = ['column1','column2'],
    right_on = ['column3','column4'],
    how = 'left')

df1.merge(
    df2,
    on = 'column1',
    how = 'left')
--sql
select
    datamart1.column1
    , datamart1.column2
    , datamart2.column3
from
    datamart1
        left join
    datamart2
        on = column2
Concat, das mehrere Daten zu einem kombiniert
#python_pandas
#Vertikal
pd.concat([df1,df2],axis=0)

df1.append(df2)

#Seite
pd.concat([df1,df2],axis=1)
#python_numpy
#Vertikal
np.concatenate([nparray1,nparray2], axis=0)

#Seite
np.concatenate([nparray1,nparray2], axis=1)
--sql
select
    column1
from
    datamart1
union -- union all / intersect / except
select
    column2
from
    datamart2
Reihenanzahl
#python
len(df)
--sql
select
    count(*)
from
    datamart1
;
Überprüfen Sie die Art der Daten
#python
#Formprüfung
np.array().shape
Sortierung
#python
df.sort_values()
--sql
select
    *
from
    datamart1
order by
    column1
Bearbeitung von Fensterfunktionen
#python

--sql

Daten generieren
#python
#Generieren Sie nparray mit denselben Werten
#Beispiel 3D
np.tile(Zahlen, (n, n, n))

Listeneinschlussnotation
[i for i in range(100)]

#Bei Verwendung der if-Anweisung
[i for i in range(100) if i > 50]
Anhäufung
#python
df\
    .groupby(['column1','column2'])\
    .agg({'column3':'sum',
          'column4':'mean'})\
    .reset_index()
-- sql
select
    column1
    , column2
    , sum(column3)
    , avg(column4)
from
    datamart1
group by
    column1
    , column2
;
Zählen Sie beim Aggregieren nur bestimmte Elemente
df_tmp\
    .groupby('column1')\
    .agg({'column2':'nunique'})
Führen Sie während der Aggregation mehrere Vorgänge für eine einzelne Spalte aus
df_tmp\
    .groupby('column1')\
    .agg({'column2':['sum', 'min', 'max']})
Mach die Berechnung
#python
#durchschnittlich
np.average(nparray, axis = n)
#Bei Daten mit zwei oder mehr Dimensionen hängt das Ergebnis von der durchschnittlichen Dimension ab.

np.array().mean()

#Teilung
np.array(nparray1, nparray2)
Teilen Sie eine Zeichenfolge mit bestimmten Symbolen
#Holen Sie sich im Listenformat
str_data.split('Bestimmte Zeichenfolge')
Extrahieren Sie die letzten n Zeichen der Zeichenfolge
str_data[-n]
Löschen Sie die letzten n Zeichen der Zeichenfolge
str_data[:-n]
Überprüfen Sie, ob die Textdaten eine bestimmte Zeichenfolge enthalten
str_data.find('Zu suchende Zeichenkette')
#Wenn die Zeichenfolge enthalten ist"1"Wenn nicht enthalten"-1"

Bilddatenverarbeitung

Bilddaten lesen
#python
import cv2
cv2.imread('filename.png')
#python
import PIL
PIL.image.open('filename.png')
Anzeige von Bilddaten
#python
cv2.imshow("image_name", cv2.imread('filename.png'))
#"image_name"Ist optional eingestellt
#python
PIL.image.open('filename.png').show()
Bilddatenkonvertierung
#python
#Bilddaten np Konvertierung
image = PIL.image.open('filename.png')
np.array(image)
Teil des Bildes extrahieren
#python
np.array(image)[Oberes Pixel:Unteres Pixel,Linkes Pixel:Rechtes Pixel]
Zum Bild hinzufügen
#python

#Fügen Sie ein Quadrat hinzu
plt.figure()
plt.grid(false)
cv2.rectangle(np.array(image), (Rechtes Pixel,Oberes Pixel), (Linkes Pixel,Unteres Pixel), (255, 255, 255), 4)
plt.imshow(np.array(image),cmap='gray',vmin=0,vmax=65555)
Bildkonvertierung

signal.convolve2D

Unterstützung für das TIF-Format

#Ändern Sie die Anzahl der zu extrahierenden Bilder mit der letzten Nummer
Image.open('~.tif').seek(0)

Visualisierungsprozess

Bildgröße angezeigt werden
#python
plt.figure(figsize = (6,4))
Festlegen des Bereichs des anzuzeigenden Diagramms
#python
plt.x_lim([richtig,links])
plt.y_lim([Oben,unter])
Machen Sie das anzuzeigende Bild quadratisch
#python
aspect = (ax.get_x_lim()[1] - ax.get_xlim()[1]) / (ax.get_y_lim()[1] - ax.get_y_lim()[0])
ax.set_aspect(aspect)
Machen Sie den Hintergrund transparent
#python
fig.patch.set_alpha(0)
#Es wird nur fig unterstützt
Entsprechung von Gitterlinien
#python

#Rasterlinien nicht anzeigen

Anzeige mehrerer Bilder
#python

#Verwenden Sie 1, Nebenhandlung
plt.subplot(Vertikal,Seite,1)
plt.plot(~)
plt.subplot(Vertikal,Seite,2)
plt.plot(~)
↓
plt.subplot(Vertikal,Seite,Vertikal×Seite)
plt.show(~)

#2、add_Nebenhandlung verwenden,
ax1 = plt.figure().add_subplot(Vertikal,Seite,1)
ax1 = plot(~)
↓
plt.show()

#Verwenden Sie 3 Nebenhandlungen
fig, axes = plt.subplots(~, figsize=(6,4)) #Abb. wird nicht verwendet
axes[1].plot


Japanisch anzeigen
#python
#Prozess mit der Bibliothek

Modellieren

Methodenkorrespondenz table_coding general

Verarbeitung von Zeitdaten

Berechnung der Bearbeitungszeit
#python
import time
#Beginn der Verarbeitung
time_start = time.time()
#Ende der Verarbeitung
time_end   = time.time()
print(time_end-time_start)
Konvertieren Sie Datums- und Zeitdaten vom Zeichentyp in den Zeittyp
import datetime
from dateutil.relativedelta import relativedelta

date_datetime = datetime.datetime.strptime('2020-05-24', '%Y-%m-%d')
Konvertieren Sie Datums- und Zeitdaten vom Zeichentyp in den Zeittyp
import datetime
from dateutil.relativedelta import relativedelta

datetime.datetime.strftime(date_datetime, '%Y-%m-%d')
Datums- und Uhrzeitdifferenz
date_datetime + datetime.timedelta(days=7)
date_datetime + relativedelta(weeks = 1)
Erhalten Sie Tagesinformationen aus Datums- und Zeitdaten
datetime.weekday(date_datetime)

Pfadverarbeitung

Laden von Funktionen aus der py-Datei
#python
#Verzeichnis"src"Lesen Sie die Funktion aus der folgenden Datei
import sys
sys.path.append('src/')
from filename.py import func_name
Lesen Sie die Daten auf dem Windows-Server
#python
import pathlib
filepath = r'Pfad_Dateiname.csv'
read_file = pathlib.WindowPath()
Extrahieren Sie Dateien in einem bestimmten Verzeichnis
import glob
glob.glob('path/*')
Erstellen Sie einen Pfad, wenn kein Pfad vorhanden ist
import os

if os.path.exists(path_name) == False
    os.makedirs(path_name)

Laden und speichern Sie Dateien

Datei lesen
#python_pandas

#Lesen Sie df
pd.DataFrame(data,columns=[column1,column2])

pd.read_csv('filename')
#python_numpy

#Laden von npz
np.load(filename)
Datei speichern
#python_pandas

#Lesen Sie df
pd.DataFrame().to_csv('filename', index=False)
#python_numpy

#Speichern Sie npz
np.savez(pathname, filename1 = np.array('1'), filename2 = np.array('2'))
#python_matplotlib
#Bild speichern
plt.savefig('filename')
#python_sklearn
#Modell speichern
import sklearn
import pickle
reg = sklearn.LinearRegression().fit(x,y)
with open('filename.pickle', mode = 'wb', as f
    pickle.dump(reg, f)

Verarbeitung von Iterationen

Iteration mit mehreren Elementen
#zip
for i_column1, i_column2 in zip(df_tmp.column1, df_tmp.column2):

#itertools
for i,j in 
    permutations(i,j):Permutation
    combinations(i,j):Kombination
    products(i,j):Direktes Produkt
Geben Sie die Iterationsnummer ein

for i in enumerate(df_tmp.column):

Über Funktionen / Klassen

Funktion
#def, verwenden
def_func_name(parameter1, parameter2):
wird bearbeitet
return Rückgabewert

#Verwenden Sie Lambda,
lambda parameter:Formel zurückgeben(parameter)

#Verwenden Sie Lambda,_In einer Zeile ausgedrückt
(lambda parameter:Formel zurückgeben(parameter))(parameter_instance)
Klasse

Recommended Posts

Codekonvention, Methodenkorrespondenztabelle
Nintendo Code Puzzle Table 1. Frage
Korrespondenztabelle für IPython- und Pry-Befehle