L'analyse des données devient de plus en plus un aspect important de chaque secteur. De nombreuses organisations s'appuient fortement sur l'information pour prendre des décisions stratégiques, prévoir les tendances et comprendre le comportement des consommateurs. Dans un tel environnement, la bibliothèque Pandas de Python apparaît comme un dispositif puissant, offrant une gamme différente de fonctionnalités pour manipuler, décomposer et visualiser avec succès les informations. L'une de ces fonctionnalités puissantes consiste à regrouper les données par intervalles de temps.
Cet article se concentrera sur la façon d'utiliser Pandas pour regrouper les données par intervalles de temps. Nous explorerons la syntaxe, des algorithmes faciles à comprendre, deux approches différentes et deux codes du monde réel entièrement exécutables basés sur ces approches.
La méthode sur laquelle nous allons nous concentrer est la fonction groupby() de Pandas, en particulier sa méthode de rééchantillonnage. La syntaxe est la suivante :
df.groupby(pd.Grouper(key='date', freq='T')).sum()
En grammaire :
df − votre DataFrame.
groupby(pd.Grouper()) − Fonction de regroupement de données.
key - La colonne par laquelle vous souhaitez effectuer un regroupement. Ici, c'est la colonne 'date'.
freq − fréquence de l'intervalle de temps. ("T" représente les minutes, "H" représente les heures, "D" représente les jours, etc.)
sum() - Fonction d'agrégation.
Voici un algorithme étape par étape pour regrouper les données par intervalles de temps -
Importez la bibliothèque nécessaire, à savoir Pandas.
Chargez ou créez votre DataFrame.
Convertissez la colonne de date en un objet datetime, si elle n'est pas déjà convertie.
Utilisez pd.Grouper pour appliquer la fonction groupby() sur la colonne de date, en utilisant la fréquence souhaitée.
Appliquez des fonctions d'agrégation telles que sum(), Mean()
Imprimez ou stockez les résultats.
Nous considérerons deux approches différentes −
Dans cet exemple, nous créons un DataFrame contenant une plage de dates et de valeurs. Nous avons ensuite regroupé les données par fréquence quotidienne et additionné les valeurs quotidiennes.
# Import pandas import pandas as pd # Create a dataframe df = pd.DataFrame({ 'date': pd.date_range(start='1/1/2022', periods=100, freq='H'), 'value': range(100) }) # Convert 'date' to datetime object, if not already df['date'] = pd.to_datetime(df['date']) # Group by daily frequency daily_df = df.groupby(pd.Grouper(key='date', freq='D')).sum() print(daily_df)
value date 2022-01-01 276 2022-01-02 852 2022-01-03 1428 2022-01-04 2004 2022-01-05 390
L'introduction de la bibliothèque Pandas est une exigence absolue pour tout travail de manipulation de données et c'est la principale chose que nous allons vraiment faire dans ce code. L'utilisation de la stratégie pd.DataFrame() est une étape ultérieure lors de la construction d'un DataFrame. Les parties "Date" et "Valeur" constituent cette trame de données. La fonction pd.date_range() est utilisée pour créer une plage d'horodatages horaires dans la colonne "Date", tandis que la partie "Valeur" ne contient que des plages de nombres entiers. La colonne "Date" est le résultat de cette interaction.
Bien que notre colonne Date gère actuellement les objets datetime différemment, nous utilisons progressivement la fonction pd.to_datetime() pour nous assurer qu'elle est modifiée. Cette étape est critique car la progression de l’activité de collecte dépend du fait que le segment possède ou non un type d’information d’objet datetime.
Après cela, afin de regrouper les données par fréquence quotidienne (« D »), nous utilisons la fonction groupby() combinée avec la fonction pd.Grouper(). Après le regroupement, nous utilisons la fonction sum() pour combiner tous les éléments « valeur » appartenant au même jour en un seul total.
Enfin, le DataFrame groupé est écrit, affichant le total des valeurs de chaque jour.
# Import pandas import pandas as pd # Create a dataframe df = pd.DataFrame({ 'date': pd.date_range(start='1/1/2022', periods=100, freq='T'), 'value': range(100) }) # Convert 'date' to datetime object, if not already df['date'] = pd.to_datetime(df['date']) # Group by 15-minute frequency custom_df = df.groupby(pd.Grouper(key='date', freq='15T')).sum() print(custom_df)
value date 2022-01-01 00:00:00 105 2022-01-01 00:15:00 330 2022-01-01 00:30:00 555 2022-01-01 00:45:00 780 2022-01-01 01:00:00 1005 2022-01-01 01:15:00 1230 2022-01-01 01:30:00 945
La technique suivante commence par un import de la bibliothèque Pandas similaire à la première puis crée un DataFrame. Ce DataFrame est le même que celui utilisé dans le modèle précédent ; la seule différence est que la colonne 'date' contient désormais l'horodatage en minutes.
La colonne 'date' doit être un objet datetime pour que l'activité de collecte fonctionne correctement, et la fonction pd.to_datetime() garantit que cela se produit.
Dans cette section, nous utilisons la fonction pd.Grouper() à l'intérieur de la méthode groupby() pour effectuer des opérations de regroupement en utilisant une fréquence dédiée de 15 minutes (« 15T »). Pour agréger les entrées « valeur » pour chaque intervalle de 15 minutes, nous utilisons la fonction sum(), qui est la même méthode que celle utilisée dans la première méthode.
Complétez le code en affichant un nouveau DataFrame groupé affichant la somme de la colonne 'valeur' pour chaque intervalle de 15 minutes.
Les puissantes fonctionnalités de Pandas incluent diverses opérations de données, dont l'une consiste à regrouper les données par intervalles de temps. En utilisant la fonction groupby() en conjonction avec pd.Grouper, nous pouvons segmenter efficacement les données en fonction de fréquences quotidiennes ou de fréquences personnalisées, permettant une analyse de données efficace et flexible.
La possibilité de regrouper les données par intervalles de temps permet aux analystes et aux entreprises d'extraire des informations significatives à partir des données. Qu'il s'agisse de calculer les ventes totales par jour, d'obtenir la température moyenne par heure ou de compter les visites sur un site Web toutes les 15 minutes, le regroupement des données par intervalles de temps nous permet de mieux comprendre les tendances, les modèles et les changements dans les données au fil du temps.
N'oubliez pas que la bibliothèque Pandas de Python est un puissant outil d'analyse de données. Apprendre à utiliser ses fonctionnalités, telles que la méthode groupby, peut vous aider à devenir un analyste de données ou un data scientist plus efficace et plus compétent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!