Bibliotheken für die
Exploration einlesen und einrichten
Installierte Versionen |
pd.show_versions() |
Pandas importieren |
import pandas as pd |
Anzahl der angezeigten Spalten Zeige alle Spalten Anzahl der angezeigten Reihen Breite der Spalten Formatieren von floats |
pd.set_option('display.max_columns', 50) pd.set_option('display.max_columns',
None) pd.set_option('display.max_row', 1000) pd.set_option('display.max_colwidth',
50) pd.set_option('display.float_format',
lambda x: '%.3f' % x) |
Numpy importieren |
import numpy as np |
Seed für Reproduzierbarkeit
setzen |
np.random.seed() |
Filterwarnungen Warnungen ignorieren |
from warnings import filterwarnings filterwarnings('ignore') |
System, Pfad angeben |
import os os.chdir('Pfad') |
Auswahl
von Spalten einlesen |
df = pd.read_csv('file.csv',
usecols=['A', 'C', 'D']) |
Range
von Spalten/Reihen einlesen |
df = pd.read_csv(name.csv,
usecols=range(11)) df = pd.read_csv(name.csv,
nrows=3) |
Beim
Einlesen den Datentyp zuweisen |
df
= pd.read_csv('file.csv', usecols=['A', 'C', 'D'], dtype={'D':'category'}) |
Zip
einlesen |
df
= pd.read_csv('data.csv.zip') df.to_csv(data.csv.zip') |
Pfad
angeben String
in raw string umwandeln |
df = pd.read_csv('Pfad \ file.csv') df = pd.read_csv(r'Pfad \ file.csv') df = pd.read_csv(r'Pfad \\ file.csv') df = pd.read_csv(r'Pfad / file.csv') |
Spaltennamen
ändern |
names = ['name1', 'name2', …] df = pd.read_csv('df.csv',
names=names, header=0) |
Die
Reihenfolge der Spalten ändern |
df.loc[:,
::-1] |
Reihenfolge
der Reihen ändern Mit
resetten des Index |
df.loc[::-1] df.loc[::-1].reset_index(drop=True) |
Spaltennamen
ändern mit Prefix/Suffix |
df.add_prefix('X_') df.add_suffix('_Y') |
Fehlender
Header |
names = ['name1', 'name2', …] df = pd.read_csv('df.csv',
names=names, header=0) |
Tabellen aus PDFs einlesen |
|
DF
mit c/p (Daten im Clipboard) aus Excel kopieren |
Daten
in Excel markieren, str+c df
= pd.read_clipboard() packt
es automatisch ins DF |
Daten aus mehreren
Dateien einlesen
from
glob import glob
# Verwende die glob- Funktion, um
alle Dateien, die in eine Muster passen, aufzulisten
files = sorted(glob{'file.csv'}
# Lese die Dateien und verwende concat,
um sie zusammenzufügen
pd.concat{(pd.read_csv(file) for file
in files, ignore_index=True}
Ein erster Überblick über
das DataFrame
Statistische
Info, mit include=[]
Spalten auswählen, nach dtypes oder Namen oder anderen
Kriterien |
df.describe() first_quartile = df['A'].describe()['25%] |
Describe
für bestimmte Spalten |
df[['Spalte1',
' Spalte 2', ' Spalte 3']].describe() |
Erste
fünf Reihen anzeigen |
df.head() |
Letzte
fünf Reihen anzeigen |
df.tail() |
Zufälliges
Sample anzeigen |
df.sample(5) |
Anzahl
Reihen/Spalten im tuple |
df.shape |
Anzahl
von Einzelwerten, zeige nans mit dropna=False an Um
durch cols zu iterieren, for
i in df:… |
ser.value_counts() |
Memory
Footprint und Datentypen |
df.info() |
Spaltennamen |
df.columns |
Ist
jede Spalte nur einmal vorhanden? |
for i
in column_names: |
Spalte
als Index deklarieren |
df.set_index(Series) |
Neuen
Index erstellen |
df.reset_index |
Manipulieren
Spalte
umbenennen |
df = df.rename(columns={'oldName1':
'newName1', 'oldName2': 'newName2'}) # Umbenennen
mit inplace df.rename(columns={'oldName1': 'newName1', 'oldName2':
'newName2'}, inplace=True) |
Alle
Spalten umbenennen mit Liste |
df_cols = [] df.columns = df_cols |
Spalten
und Reihen gleichzeitig ändern |
df.rename(columns={}, index={}, inplace=True) |
Spaltenamen
ändern mit string Methode |
df.columns = df.columns.str.replace('-',
'_') |
Den richtigen
Datentyp zu verwenden (category statt object) kann den Speicherverbrauch drastisch reduzieren!
Datentypen
im DataFrame anzeigen |
df.dtypes |
Alle
vorhandenen Datentypen einfach anzeigen |
df.dtypes.unique() |
Zählen
der einzelnen Datentypen |
df.get_dtype_counts() |
Datentyp
einer Spalte ändern Mehrere
Spalten mit dict |
df.column.astype() df.astpye({'A':
'int', 'B': 'float'}) |
Zeige
bestimmten dtype in df an
Zeige
nur Spaltentitel mit Datentyp object an |
df.select_dtypes('dtype') df.select_dtypes([Liste von dtypes]) df.select_dtypes('object').columns |
Bestimmte
dtypes ausschließen |
df.select_dtypes(exclude=['object']) |
Wie
viele Spaltes jedes dtypes gibt es? |
df.dtypes.value_counts() |
Zähle
alle uniquen Werte in allen Objekt Spalten |
data.select_dtypes('object').apply(pd.Series.nunique,
axis= 0) |
Datentyp
beim einlesen ändern mit dict |
df
= pd.read_csv(name.csv, dtype={'Spalte' : float}) |
Verwende
to_numeric, falls es mit astpye
eine Fehlermeldung gibt, weil nicht alle Werte der Spalte numerisch sind. Mit
auffüllen der nans Mit
apply auf das ganze DF anwenden |
df.series = pd.to_numeric(df.series, errors='coerce') df.series = pd.to_numeric(df.series, errors='coerce').fillna() df = df.apply(pd.to_numeric, errors='coerce').fillna() |
Iterieren,
Spaltennamen und dtpye ausgeben |
print('Object Spalten: ') for col in df: if df[col].dtype == 'object': print(col.upper()) |