[PYTHON] pandas Matplotlib Zusammenfassung nach Verwendung

Pandas

Daten gelesen

import pandas as pd
df = pd.read_csv('data.csv')

Statistische Informationen ausgeben

pandas.DataFrame.describe — pandas 1.0.4 documentation

df.describe()
TeamId	Score
count	4.709900e+04	47099.000000
mean	4.409698e+06	0.749839
std	9.901986e+05	0.099161
min	2.792400e+04	0.000000
25%	4.501446e+06	0.760760
50%	4.774358e+06	0.770330
75%	4.915774e+06	0.779900
max	5.051599e+06	1.000000

#Grenzen Sie die Ausgabespalten ein
df['Score'].describe()
count    47099.000000
mean         0.749839
std          0.099161
min          0.000000
25%          0.760760
50%          0.770330
75%          0.779900
max          1.000000
Name: Score, dtype: float64

Grenzen Sie die Daten ein

Python Pandas: Boolean indexing on multiple columns - Stack Overflow

total_count = df['Score'].count() # 47099
partial_count = df[(0.6 < df['Score']) & (df['Score'] < 0.8)]['Score'].count() # 42893

Konvertieren Sie kategorisierte Daten in Zahlen

pandas.Series.map — pandas 1.0.4 documentation

# Embarked(C, Q, S)Numerischer Wert(1, 2, 3)Umstellung auf
df_train['Embarked'] = df_train['Embarked'].map({'C': 1, 'Q': 2, 'S': 3})

Spalte umbenennen

pandas.DataFrame.rename — pandas 1.0.4 documentation

# Sex(female, male)Numerischer Wert(0, 1)Konvertieren Sie in und ändern Sie den Spaltennamen in Männlich
df_train['Sex'] = df_train['Sex'].map({'female': 0, 'male': 1})
df_train = df_train.rename(columns={'Sex': 'Male'})

Überprüfen Sie, ob Werte fehlen

pandas.isnull — pandas 1.0.4 documentation pandas.DataFrame.sum — pandas 1.0.4 documentation

df_train.isnull().sum()
PassengerId      0
Survived         0
Pclass           0
Name             0
Male             0
Age            177
SibSp            0
Parch            0
Ticket           0
Fare             0
Cabin          687
Embarked         2
dtype: int64

Fehlende Werte ausschließen

#Schließen Sie alle Zeilen mit fehlenden Werten aus
df_train_dn = df_train.dropna()
#Durch Spalten angegebene Spalten ausschließen
df_train_dn = df_train_dn.drop('Cabin', axis='columns

Funktion auf Zeilen- / Spaltenwerte anwenden

pandas.DataFrame.apply — pandas 1.0.4 documentation

#Titel extrahieren
def getTitle(row):
    name = row['Name']
    p = re.compile('.*\ (.*)\.\ .*')
    surname = p.search(name)
    return surname.group(1)

df_train['Title'] = df_train.apply(getTitle, axis=1)
df_train['FamilyName'] = df_train.apply(getFamilyName, axis=1)

Wert extrahieren

Indexing and selecting data — pandas 1.0.4 documentation Abrufen / Ändern des Werts einer Position mit Pandas unter, iat, loc, iloc | note.nkmk.me

#Geben Sie die Spaltenbezeichnung an
df_train.loc[:, ['Title', 'FamilyName']].head()

# 	Title	FamilyName
# 0	Mr	Braund
# 1	Mrs	Cumings
# 2	Miss	Heikkinen
# 3	Mrs	Futrelle
# 4	Mr	Allen

Berechnen Sie den Durchschnitt usw. für jede Kategorie (GROUP BY)

Verwendung von Pandas groupby --Qiita

#Finden Sie das Durchschnittsalter und die Anzahl der Daten für jeden Titel

s_age_mean_groupby_title = df_train.groupby('Title').mean().loc[:, 'Age']
s_age_count_groupby_title = df_train.groupby('Title').count().loc[:, 'Age']

df_age = pd.concat([s_age_mean_groupby_title, s_age_count_groupby_title], axis='columns')
df_age.columns.values[0] = 'AgeMean'
df_age.columns.values[1] = 'AgeCount'
df_age.sort_values(by='AgeCount', ascending=False)

#        AgeMean   AgeCount	
# Mr	 32.368090 398
# Miss	 21.773973 146
# Mrs	 35.728972 107
# Master  4.574167  36
# Rev    43.166667   6

Werte sortieren

pandas.DataFrame.sort_values — pandas 1.0.5 documentation

Extrahieren Sie eindeutige Werte

pandas.unique — pandas 1.0.5 documentation

Farbe bei der Anzeige von Datenrahmen

pandas.io.formats.style.Styler.apply — pandas 1.0.5 documentation python - Pandas style function to highlight specific columns - Stack Overflow

Matplotlib

Stellen Sie die Diagrammachse ein

matplotlib.pyplot.axis — Matplotlib 3.2.1 documentation

plt.axis(xlim=(-0.005, 1.005), ylim=(0, 9000))

matplotlib.axes.Axes.set_ylim — Matplotlib 3.2.2 documentation Es ist auch möglich, für jede Achse mit "set_xlim ()" und "set_ylim ()" zu setzen.

#Stellen Sie die Obergrenze der y-Achse auf 100 ein
plt.gca().set_ylim(top=100)

Anpassen des Etiketts

Geben Sie die Position des Etiketts an

plt.gca().yaxis.set_label_position('right')

Geben Sie die Beschriftungskoordinaten an

#Geben Sie die Beschriftungsposition rechts an und legen Sie die Koordinaten fest(x, y) = (1.25, 0.5)Verschiebung
#(Bezogen auf die Standardkoordinaten rechts(1.25, 0.5)Benimmt sich)
plt.gca().yaxis.set_label_position('right')
plt.gca().yaxis.set_label_coords(1.25, 0.5)

Etikett ausblenden

#X-Achsenbeschriftung ausblenden
plt.gca().set_xticklabels([])
#Y-Achsenbeschriftung ausblenden
plt.gca().set_yticklabels([])

Platzieren Sie die Zeichen an einer beliebigen Position

matplotlib.pyplot.text — Matplotlib 3.1.2 documentation

#Beschriftung der Y-Achse, wenn mehrere Diagramme vorhanden sind(Response Time (s))Ergänze
plt.gcf().text(
  plt.gcf().axes[0].get_position().x1 - 0.45,
  plt.gcf().axes[0].get_position().y1 - 0.5,
  'Response Time (s)',
  rotation=90
)

Passen Sie die Breite zwischen den Diagrammen an

matplotlib.pyplot.tight_layout — Matplotlib 3.1.2 documentation [Python] Einführung in die Beseitigung überlappender Zeichen, die von Matplotlib ausgegeben werden! │ Python-Anfängermemorandum

plt.tight_layout()

Legende anzeigen

matplotlib.pyplot.legend — Matplotlib 3.1.2 documentation

plt.legend(["legend1", "legend2"])

Wird auf Japanisch angezeigt

Geben Sie die Schriftart mit "prop" an. So zeigen Sie Japanisch mit Matplotlib (Windows) einfach an | Gammasoft Co., Ltd.

plt.legend(["Quadratischer Wert"], prop={"family":"MS Gothic"})

Anzeige außerhalb des Diagramms

Geben Sie die Position mit bbox_to_anchor an. python - How to put the legend out of the plot - Stack Overflow

plt.legend(["Quadratischer Wert"], prop={"family":"MS Gothic"}, bbox_to_anchor=(1.05, 1))

Zeigt eine linear ungefähre Neigung zu einem mit Matplotlib gezeichneten Streudiagramm

#Berechnen Sie die Steigung bei linearer Annäherung
a = np.polyfit(x, y, 1)[0]

Die Indexnotation des Etiketts wurde in die normale Notation geändert

plt.ticklabel_format(style='plain')

Zeigen Sie die Zahlen auf dem Etikett durch drei Ziffern getrennt an

Zeichnen Sie die Zahlen auf der Achsenbeschriftung durch drei Ziffern getrennt (matplotlib) - Qiita

plt.gca().xaxis.set_major_formatter(plt.FuncFormatter(lambda x, loc: '{:,}'.format(int(x))))

Etiketten sortieren

Legend guide — Matplotlib 3.2.2 documentation python - How is order of items in matplotlib legend determined? - Stack Overflow

handles = []
for label in labels:
  handle = plt.scatter(..., label=label)
  handles.append(handle)

#Definieren Sie eine Funktion als Sortierkriterium in Lambda
labels, handles = zip(*sorted(zip(labels, handles)), key=lamdba x: x[0])

Passen Sie die Größe des Diagramms an

matplotlib.pyplot.subplots_adjust — Matplotlib 3.2.2 documentation

plt.figure()

plt.subplot(121)
# ...
plt.subplot(122)
# ...

#Passen Sie die Breite zwischen den Teilplots an
plt.subplots_adjust(wspace=1, right=3)

Verwenden Sie ggplot

ggplot ist ein Grafikwerkzeug, das häufig in R verwendet wird.

Das Merkmal ist, dass es so beschrieben werden kann, dass sich Diagramme mehrerer Ebenen überlappen. Was ist R | ggplot2 | hanaori | note

plt.style.use('ggplot')

#Geschlecht der Überlebenden der Handlung
df_train_survived = df_train_dn[df_train_dn.Survived == 1]
df_train_survived_age = df_train_survived.iloc[:, 3]
df_train_survived_male = df_train_survived.iloc[:, 2]
plt.scatter(
  df_train_survived_age,
  df_train_survived_male,
  color="#cc6699",
  alpha=0.5
)

#Zeichnen Sie das Geschlecht der Toten
df_train_dead = df_train_dn[df_train_dn.Survived == 0]
df_train_dead_age = df_train_dead.iloc[:, 3]
df_train_dead_male = df_train_dead.iloc[:, 2]
plt.scatter(
  df_train_dead_age,
  df_train_dead_male,
  color="#6699cc",
  alpha=0.5
)

plt.show()

Andere

Rundung

9.4. decimal — Decimal fixed point and floating point arithmetic — Python 2.7.18 documentation

Geben Sie die Anzahl der Stellen mit dem ersten Argument von "Decimal.quantize ()" an.

decile = lambda num: Decimal(num).quantize(Decimal('.001'), rounding=ROUND_HALF_UP)
histogram = Counter(decile(score) for score in df['Score'])
print(histogram.keys())
# dict_keys([Decimal('0.761'), Decimal('0.000'), Decimal('0.775'), ...])

Verwenden Sie den Index mit "map ()"

Getting index of item while processing a list using map in python - Stack Overflow

Die Anzeige der Anzahl der Stellen vom Typ "float" wurde geändert

Ausgabe durch Angabe der Anzahl der Ziffern (Zahlen, Dezimalstellen usw.) in Python print | HEADBOOST

#Geben Sie die Anzahl der Stellen nach dem Dezimalpunkt des Exponenten als 3 Stellen an
# e.g. float_number = 7.918330583e-06
'{:.3e}'.format(float_number)
# 7.918e-06

Recommended Posts

pandas Matplotlib Zusammenfassung nach Verwendung
Zusammenfassung der grundlegenden Verwendung von Pandas
matplotlib Zusammenfassung
Nach Pandas sortieren
Zusammenfassung der Verwendung von pytest
Zusammenfassung der persönlichen Notizen von Pandas
Zusammenfassung der Verwendung von pyenv
Faker Zusammenfassung nach Sprache
[Numpy / Pandas / Matplotlib Übung 01]
Berichtsumgebungskonstruktion durch Python (Matplotlib, Pandas, Sphinx) + wkhtmltopdf
Memorandum (Pseudo-Vlookup von Pandas)
Bequeme Nutzungsübersicht von Flask
Transparente Überlagerung des Histogramms durch Matplotlib
Pipenv Nutzungszusammenfassung (für mich)
Python Pandas Studie aktuelle Zusammenfassung
Standardisieren Sie nach Gruppen mit Pandas
Echtzeit-Diagrammanzeige von matplotlib
Visualisierungsnotiz von Pandas, Seaborn
Index der Verwendung bestimmter Pandas
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (5)
[Numpy / pandas / matplotlib Übung 01] Vorlage aktualisieren
Zusammenfassung der grundlegenden Implementierung von PyTorch
Zusammenfassung des maschinellen Lernens von Python-Anfängern
Vielseitige Datenerfassung mit Pandas + Matplotlib
Zusammenfassung der Implementierung von 1D-CNN, 2D-CNN-Scratch von Pytorch
Zusammenfassung der häufig verwendeten Grammatik bei Pandas
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Bearbeiten von Strings mit Pandas gruppieren nach
Zusammenfassung der Zufallszahlengenerierung durch Numpy
Fall mit Pandas-Plot, Fall mit (reinem) Matplotlib-Plot
Erstellen einer GUI-Anwendung durch Kivy (einschließlich Matplotlib)
Pandas Basics Summary Link für Anfänger
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
Feature-Generierung mit Pandas gruppieren nach