English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Exemple d'opération de connexion Pandas
Pandas offre diverses fonctionnalités permettant de combiner facilement des objets Series, DataFrame et Panel.
pd.concat(objs,axis=0,join='outer',join_axes=None, ignore_index=False)
objs − C'est une séquence de Series ou une carte, un objet DataFrame ou Panel. axis − {0,1,...}, par défaut 0. C'est l'axe à concaténer. join − {'inner', 'outer'}, par défaut 'outer'. Comment traiter les indices sur d'autres axes. Externe pour la fusion, interne pour la croisée. ignore_index − Boolean, par défaut False. Si True, n'utilisez pas les valeurs d'index sur l'axe de concaténation. L'axe de résultat sera marqué comme 0, ... , n-1。 join_axes − C'est une liste d'indices. Utilisé pour d'autres (n-1)Index spécifique de l'axe, plutôt que de s'exécuter à l'intérieur/Logique de configuration externe.
La fonction CONCAT effectue toutes les opérations de concaténation le long des axes. Laissons-nous créer différents objets et les assembler.
import pandas as pd one = pd.DataFrame({ 'Nom': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sous1','sous2','sous4','sous6','sous5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nom': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sous2','sous4','sous3','sous6','sous5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(pd.concat([one,two])))
Résultat de l'exécution suivant :
Marks_scored Name subject_id 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen4 4 69 Alice6 5 78 Ayoung5 1 89 Billy2 2 804 3 79 Bran3 4 97 Bryce6 5 88 Betty5
Supposons que nous voulions associer des clés spécifiques à chaque segment d'un DataFrame découpé. Nous pouvons le faire en utilisant le paramètre keys-
import pandas as pd one = pd.DataFrame({ 'Nom': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sous1','sous2','sous4','sous6','sous5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nom': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sous2','sous4','sous3','sous6','sous5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(pd.concat([one,two],keys=['x','y']))
Résultat de l'exécution suivant :
x 1 98 Alex1 2 902 3 87 Allen4 4 69 Alice6 5 78 Ayoung5 y 1 89 Billy2 2 804 3 79 Bran3 4 97 Bryce6 5 88 Betty5
Les indices du résultat sont redondants ; chaque index est répété.
Si l'objet de résultat doit suivre son propre index, mettez ignore_index à True.
import pandas as pd one = pd.DataFrame({ 'Nom': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sous1','sous2','sous4','sous6','sous5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nom': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sous2','sous4','sous3','sous6','sous5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(pd.concat([one,two],keys=['x','y'],ignore_index=True))
Résultat de l'exécution suivant :
Marks_scored 0 98 Alex sous1 1 90 Amy sous2 2 87 Allen sous4 3 69 Alice sous6 4 78 Ayoung sous5 5 89 Billy sous2 6 80 Brian sous4 7 79 Bran sous3 8 97 Bryce sous6 9 88 Betty sous5
Attention, l'index est complètement modifié et les clés sont également remplacées.
Si vous devez suivre l'axe = 1Ajouter deux objets, cela ajoutera une nouvelle colonne.
import pandas as pd one = pd.DataFrame({ 'Nom': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sous1','sous2','sous4','sous6','sous5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nom': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sous2','sous4','sous3','sous6','sous5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(pd.concat([one,two],axis=1))
Résultat de l'exécution suivant :
Marks_scored 1 98 Alex1 89 Billy2 2 902 804 3 87 Allen4 79 Bran3 4 69 Alice6 97 Bryce6 5 78 Ayoung5 88 Betty5
Concat utile est un raccourci pratique pour les méthodes append sur Series et DataFrame. Ces méthodes existent avant concat. Elles se connectent le long de l'axe = 0, c'est-à-dire l'index-
import pandas as pd one = pd.DataFrame({ 'Nom': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sous1','sous2','sous4','sous6','sous5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nom': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sous2','sous4','sous3','sous6','sous5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(one.append(two))
Résultat de l'exécution suivant :
Marks_scored 1 98 Alex1 2 902 3 87 Allen4 4 69 Alice6 5 78 Ayoung5 1 89 Billy2 2 80 Brian sous4 3 79 Bran sous3 4 97 Bryce sous6 5 88 Betty sous5
Cette fonction supplémentaire peut prendre plusieurs objets, ainsi que-
import pandas as pd one = pd.DataFrame({ 'Nom': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sous1','sous2','sous4','sous6','sous5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nom': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sous2','sous4','sous3','sous6','sous5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(one.append([two,one,two]))
Résultat de l'exécution suivant :
Marks_scored Nom subject_id 1 98 Alex sous1 2 90 Amy sous2 3 87 Allen sous4 4 69 Alice sous6 5 78 Ayoung sous5 1 89 Billy sous2 2 80 Brian sous4 3 79 Bran sous3 4 97 Bryce sous6 5 88 Betty sous5 1 98 Alex sous1 2 90 Amy sous2 3 87 Allen sous4 4 69 Alice sous6 5 78 Ayoung sous5 1 89 Billy sous2 2 80 Brian sous4 3 79 Bran sous3 4 97 Bryce sous6 5 88 Betty sous5
Pandas fournit un outil puissant pour gérer les données séquentielles, en particulier dans le domaine financier. Lorsque nous traitons des données séquentielles, nous rencontrons souvent les situations suivantes :
Générer une séquence temporelle Convertir une séquence temporelle en une fréquence différente
Fournit un ensemble de outils relativement compacts et indépendants pour exécuter ces tâches.
datetime.now()Vous fournir la date et l'heure actuelles.
import pandas as pd print(pd.datetime.now())
Résultat de l'exécution suivant :
2017-05-11 06:10:13.393147
Les données de timestamp sont le type de données séquentielles de base qui associe des valeurs à des points temporels. Pour les objets Pandas, cela signifie utiliser des points temporels. Laissons-nous en donner un exemple-
import pandas as pd print(pd.Timestamp('2017-03-01))
Résultat de l'exécution suivant :
2017-03-01 00:00:00
Il est également possible de convertir des entiers ou des flottants en temps. Leur unité par défaut est le nanoseconde (puisque c'est ainsi que les timestamps sont stockés). Cependant, l'époque est généralement stockée dans une autre unité spécifiée. Voici un autre exemple
import pandas as pd print(pd.Timestamp(1587687255,unit='s'))
Résultat de l'exécution suivant :
2020-04-24 00:14:15
import pandas as pd print(pd.date_range("11:00", "13:3"0", freq="3).time)
Résultat de l'exécution suivant :
[datetime.time(11, 0) datetime.time(11, 3) datetime.time(12, 0) datetime.time(12, 3) datetime.time(13, 0) datetime.time(13, 3, 0)
import pandas as pd print(pd.date_range("11:00", "13:30", freq="H").time)
Résultat de l'exécution suivant :
[datetime.time(11, 0) datetime.time(12, 0) datetime.time(13, 0)
Pour convertir une série ou une liste d'objets de date similaires (par exemple, des chaînes, des époques ou des mélanges), vous pouvez utiliser la fonction to_datetime. Lors de la transmission, elle retourne une Series (ayant le même index) et les listes similaires à des listes sont converties en DatetimeIndex. Regardons l'exemple suivant-
import pandas as pd print(pd.to_datetime(pd.Series(['Jul 31, 2009','2010-01-10', None)))
Résultat de l'exécution suivant :
0 2009-07-31 1 2010-01-10 2 NaT dtype: datetime64[ns]
NaT signifie que ce n'est pas une date (équivalent à NaN)
Laissons nous donner un autre exemple.
import pandas as pd print(pd.to_datetime(['2005/11/23', '2010.12.31', None]))
Résultat de l'exécution suivant :
DatetimeIndex(['2005-11-23', '2010-12-31', 'NaT'], dtype='datetime64[ns], freq=None)