[PYTHON] Traitement des mémos souvent utilisés dans les pandas (débutants)

introduction

Cet article est un mémorandum d'analyse de données par python à l'aide de pandas. Je décrirai brièvement les bases. Les variables auxquelles sont affectées les données lues par les pandas sont les suivantes.

Qu'est-ce que les pandas

Bibliothèque d'analyse de données Python

importation de pandas

Exemple d'importation (ci-après, l'exemple d'utilisation est décrit dans pd)

import pandas as pd

Lire le fichier CSV et le fichier Excel

an_data = pd.read_csv("<Nom de fichier CSV>")
an_data = pd.read_excel("<Nom du fichier Excel>")

Afficher 5 lignes de données lues

Utile lorsque vous souhaitez vérifier le contenu des données

an_data.head()

Jointure de données

Décrit le processus lors de la combinaison de données lues séparément. Nom de la première donnée: an_data1 Deuxième nom de données: an_data2

syndicat

Combinez les données verticalement. (Si vous définissez ignore_index = True, l'index sera réaffecté)

concat_data = pd.concat([an_data1, an_data2], ignore_index=True)

joindre

Combinez les données horizontalement.

merge_data = pd.merge(an_data1, an_data2[[<Combinez des clés spécifiques>]], on="<Rejoindre la clé>", how=left)

Comment gérer les données de date

Changer la chaîne de caractères des données reconnues en données de date

an_data["date"] = pd.to_datetime(an_data["date"])

Extraire uniquement l'année et le mois

an_data["Année mois"] = an_data["date"].dt.strftime("%Y%m")

Des nombres mystérieux sont lus pour des données telles qu'Excel, comme indiqué ci-dessous. Rendre possible de traiter des nombres mystérieux comme données de date

ch_time = pd.to_timedelta(an_data.loc[flg_num, "date"].astype("float"), unit="D") + pd.to_datetime("1900/01/01")

Si vous traitez un niveau supérieur, il sera séparé par des tirets tels que AAAA-MM-JJ. Il est gênant s'il est mélangé avec une date séparée par des barres obliques, donc unifiez le format (AAAA-MM-JJ).

ch_time = pd.to_datetime(an_data.loc[~flg_num, "date"])

Trouver une valeur sans données

Ajout d'index contenant des données nulles

an_data.isnull().sum()

Contient des données nulles ou des sorties booléennes (l'axe est 0 pour vertical, 1 pour horizontal)

an_data.isnull().any(axis=0)

Données de sortie par description

Le nombre de données, la moyenne, l'écart type et le résumé en quintuple sont affichés.

an_data.describe()

Sortie de type de données

<Lire les données>.dtypes

Exemple de synthèse de données par groupby

Avec l'option as_index = False, l'index qui est automatiquement créé avec le nom spécifié par groupby n'est pas créé.

an_data.groupby(["<Colonne spécifique>"]).sum()["<Une autre colonne>"]

Il est possible de spécifier plusieurs colonnes spécifiques et différentes colonnes.

an_data.groupby(["<Colonne spécifique A>", "<Colonne spécifique B>"]).sum()["<Une autre colonne A">, "<Une autre colonne b>"]
tmp = an_data.groupby(["<Colonne spécifique>"]).count()["<Une autre colonne>"]

Vous pouvez générer une moyenne, etc. en utilisant agg

tmp = an_data.groupby("<Colonne spécifique>").agg("mean", "median", "max", "min")["<La colonne que vous souhaitez agréger>"]

pivot_table

Créer une nouvelle table

an_data = pd.pivot_table(an_data, index="<Nom de la colonne que vous souhaitez indexer>", columns"<Le nom de la colonne que vous voulez être colonne>", values=["<Valeurs de colonne que vous souhaitez afficher dans la table>"], aggfunc="", fill_value=0

Trier

ascending = True est dans l'ordre croissant

an_data.sort_values(by=["<Colonne cible de tri principale>"], ascending=True)

Supprimer les blancs

an_data["test_val"] = an_data["test_val"].str.replace("  ", "")
an_data["test_val"] = an_data["test_val"].str.replace(" ", "")

Confirmation des données par unique

print(len(pd.unique(an_data["val"])))
print(pd.unique(an_data["val"]))

Vérifiez le nombre de paramètres dont la valeur est une valeur numérique

flg_num = an_data["<Nom de colonne>"].astype("str").str.isdigit()
flg_num.sum()

loc Désignation de l'étiquette

an_data.loc[:, [<column01>, <column02>]]
an_data.loc[[True, False, True, False], [False, False, True]]

iloc Désignation du numéro

an_data.iloc[[0:2], [2:4]]
an_data.iloc[[False, True, True], [False, True, False]]

Renommer l'étiquette

Spécifier inplace = True modifiera les données d'origine

an_data.rename(columns={"<Nom avant changement>":"<Nom après changement>"}, index={"<Nom avant changement>":"<Nom après changement>"}, inplace=True)

Réindexer

Étant donné que la valeur d'index est réaffectée, l'index n'est pas couvert.

an_data = an_data.reset_index(drop=False)

Traitement des gouttes

an_data = an_data.drop("<Articles que vous souhaitez déposer>", axis=1)

where Utilisez où modifier la valeur de l'élément qui "ne correspond pas" à la condition Dans l'exemple suivant, si la valeur de <Élément de comparaison> n'est pas égale ou inférieure à 5, la valeur de <Élément cible> est remplacée par 1.

an_data["<Élément cible>"] = an_data["<Élément cible>"].where(an_data["<Articles de comparaison>"]<5, 1)

relativedelta

delta = relative_delta(dtime1, dtime2)
Le contenu de delta est la différence entre dtime1 et dtime2 (dtime1 est la dernière date))

Suppression des valeurs manquantes

an_data = an_data.dropna(subsent=["<Nom de la colonne où la valeur manquante existe>"])

Le remplacement de la pièce manquante est le suivant (rempli de 0)

an_data = an_data.fillna(0)

La confirmation est possible à

an_data.isna().sum()

sortie csv

an_data.to_csv("", index=False)

exemple de sortie de graphique

Exemple d'importation de bibliothèque de sortie graphique (ci-après, l'exemple d'utilisation est décrit dans plt) De plus, la deuxième ligne décrit un exemple d'utilisation avec un notebook jupyter.

import matplotlib.pyplot as plt
%matplotlib inline

Lire les données à tracer (répertoriées dans l'ordre axe horizontal, axe vertical, option) Au moins une étiquette doit être attachée

plt.plot(an_data.index, an_data['<Éléments sur l'axe vertical>'], label='label-1')
plt.plot(an_data.index, an_data['<Éléments sur l'axe vertical>'], label='label-2')
plt.plot(an_data.index, an_data['<Éléments sur l'axe vertical>'], label='label-3')

Tracer les données lues sur un graphique

plt.legend()

Recommended Posts

Traitement des mémos souvent utilisés dans les pandas (débutants)
Résumé de la grammaire fréquemment utilisée dans les pandas
Résumé des méthodes fréquemment utilisées chez les pandas
Paramètres souvent utilisés dans Jupyter
Résumé des processus souvent effectués par Pandas 2 (référence des données, opération d'édition)
J'ai essayé de résumer le code souvent utilisé dans Pandas
Principes de base de Pandas pour les débutants ① Lecture et traitement
Principes de base de Pandas pour les débutants ⑧ Traitement des chiffres
Commandes liées au disque souvent utilisées dans Ubuntu (Notes)
Collection de conseils Numpy, Pandas souvent utilisés sur le terrain
Résumé de ce qui a été utilisé dans 100 coups de Pandas (# 1 ~ # 32)
Techniques souvent utilisées dans le codage court en python (Bloc-notes)
Code souvent utilisé dans les applications Python / Django [préfectures]
Un mémorandum de méthode souvent utilisé lors de l'analyse de données avec des pandas (pour les débutants)
Un mémorandum de méthode souvent utilisé dans l'apprentissage automatique utilisant scikit-learn (pour les débutants)
Une collection de code souvent utilisée dans Python personnel
Traitement de fichiers en Python
Apprenez les pandas en 10 minutes
Traitement des ensembles de données avec des pandas (1)
Traitement des ensembles de données avec des pandas (2)
Traitement multithread en python
UnicodeDecodeError dans pandas read_csv
Traitement de texte avec Python
Traitement des requêtes en Python
Extraits de code souvent utilisés lors du traitement de vidéos avec Google Colaboratory
Commandes souvent utilisées dans l'environnement de développement lors de l'implémentation de Python
[Explication pour les débutants] Introduction au traitement du pliage (expliqué dans TensorFlow)
[Explication pour les débutants] Introduction au traitement du pool (expliqué dans TensorFlow)
J'ai essayé de résumer les commandes souvent utilisées en entreprise