Table des matières
Utilisation de l'objet str
Utilisation de l'objet dt
Maison développement back-end Tutoriel Python Apprenez-vous les opérations sympas des pandas que 1 % des gens connaissent

Apprenez-vous les opérations sympas des pandas que 1 % des gens connaissent

Oct 09, 2020 pm 04:55 PM
pandas

La colonne

tutoriel python présente le fonctionnement des pandas aujourd'hui. Apprenez-vous les opérations sympas des pandas que 1 % des gens connaissent

pandas a une méthode très puissante, qui est accessor, qui peut être comprise comme une interface de propriété à travers laquelle des méthodes supplémentaires peuvent être obtenues. En fait, cela reste très général. Comprenons-le à travers du code et des exemples.

>>> pd.Series._accessors
{'cat', 'str', 'dt'}复制代码
Copier après la connexion

En utilisant la méthode _accessors pour la structure de données Series, nous obtenons 3 objets : cat, str, dt.

  • .cat : est utilisé pour les données catégorielles (Données catégoriques)
  • .str : est utilisé pour les données de caractères (Objet chaîne data)
  • .dt : Utilisé pour les données temporelles (données de type datetime)

Voyons comment ces trois objets sont utilisés tour à tour.

Utilisation de l'objet str

Type de données série : str string

# 定义一个Series序列
>>> addr = pd.Series([
...     'Washington, D.C. 20003',
...     'Brooklyn, NY 11211-1755',
...     'Omaha, NE 68154',
...     'Pittsburgh, PA 15211'
... ]) 

>>> addr.str.upper()
0     WASHINGTON, D.C. 20003
1    BROOKLYN, NY 11211-1755
2            OMAHA, NE 68154
3       PITTSBURGH, PA 15211
dtype: object

>>> addr.str.count(r'\d') 
0    5
1    9
2    5
3    5
dtype: int64复制代码
Copier après la connexion

Explication des deux méthodes de l'objet str ci-dessus :

  • Series.str.upper : modifie toutes les chaînes de la série en majuscules
  • Series.str.count : modifie tous les caractères de la série ; nombre de chaînes ;

En fait, il n'est pas difficile de constater que l'utilisation de cet usage est très similaire au fonctionnement des chaînes en Python. Oui, vous pouvez effectuer des opérations aussi simples dans les pandas, mais la différence est que vous exploitez une colonne entière de données de chaîne. Toujours sur la base de l'ensemble de données ci-dessus, regardons une autre opération :

>>> regex = (r&#39;(?P<city>[A-Za-z ]+), &#39;      # 一个或更多字母
...          r&#39;(?P<state>[A-Z]{2}) &#39;        # 两个大写字母
...          r&#39;(?P<zip>\d{5}(?:-\d{4})?)&#39;)  # 可选的4个延伸数字
...
>>> addr.str.replace(&#39;.&#39;, &#39;&#39;).str.extract(regex)
         city state         zip
0  Washington    DC       20003
1    Brooklyn    NY  11211-1755
2       Omaha    NE       68154
3  Pittsburgh    PA       15211复制代码
Copier après la connexion

Description des deux méthodes de l'objet str ci-dessus :

  • Series.str.replace : Remplacer la chaîne spécifiée dans la série ;
  • Series.str.extract : Extraire les informations de données dans la chaîne via des expressions régulières

Ceci ; L'utilisation est un peu compliquée, car il est évident qu'il s'agit d'une utilisation en chaîne. Utilisez replace pour remplacer "." par "", qui est vide puis utilise 3 expressions régulières (correspondant respectivement à la ville, à l'état, au zip) pour extraire les données, et modifiées. de la structure de données Series d'origine à la structure de données DataFrame.

Bien sûr, en plus de l'utilisation ci-dessus, les attributs et méthodes couramment utilisés incluent .rstrip, .contains, split, etc. Vérifions l'attribut str via le code suivant Liste complète :

>>> [i for i in dir(pd.Series.str) if not i.startswith(&#39;_&#39;)]
[&#39;capitalize&#39;,
 &#39;cat&#39;,
 &#39;center&#39;,
 &#39;contains&#39;,
 &#39;count&#39;,
 &#39;decode&#39;,
 &#39;encode&#39;,
 &#39;endswith&#39;,
 &#39;extract&#39;,
 &#39;extractall&#39;,
 &#39;find&#39;,
 &#39;findall&#39;,
 &#39;get&#39;,
 &#39;get_dummies&#39;,
 &#39;index&#39;,
 &#39;isalnum&#39;,
 &#39;isalpha&#39;,
 &#39;isdecimal&#39;,
 &#39;isdigit&#39;,
 &#39;islower&#39;,
 &#39;isnumeric&#39;,
 &#39;isspace&#39;,
 &#39;istitle&#39;,
 &#39;isupper&#39;,
 &#39;join&#39;,
 &#39;len&#39;,
 &#39;ljust&#39;,
 &#39;lower&#39;,
 &#39;lstrip&#39;,
 &#39;match&#39;,
 &#39;normalize&#39;,
 &#39;pad&#39;,
 &#39;partition&#39;,
 &#39;repeat&#39;,
 &#39;replace&#39;,
 &#39;rfind&#39;,
 &#39;rindex&#39;,
 &#39;rjust&#39;,
 &#39;rpartition&#39;,
 &#39;rsplit&#39;,
 &#39;rstrip&#39;,
 &#39;slice&#39;,
 &#39;slice_replace&#39;,
 &#39;split&#39;,
 &#39;startswith&#39;,
 &#39;strip&#39;,
 &#39;swapcase&#39;,
 &#39;title&#39;,
 &#39;translate&#39;,
 &#39;upper&#39;,
 &#39;wrap&#39;,
 &#39;zfill&#39;]复制代码
Copier après la connexion

Il existe de nombreux attributs Pour un usage spécifique, si vous êtes intéressé, vous pouvez explorer et pratiquer par vous-même.

Utilisation de l'objet dt

Type de données série : datetime

Étant donné que les données nécessitent le type datetime, ce qui suit utilise date_range() de pandas pour générer un groupe date datetime montre comment effectuer des opérations sur les objets dt.

>>> daterng = pd.Series(pd.date_range(&#39;2017&#39;, periods=9, freq=&#39;Q&#39;))
>>> daterng
0   2017-03-31
1   2017-06-30
2   2017-09-30
3   2017-12-31
4   2018-03-31
5   2018-06-30
6   2018-09-30
7   2018-12-31
8   2019-03-31
dtype: datetime64[ns]

>>>  daterng.dt.day_name()
0      Friday
1      Friday
2    Saturday
3      Sunday
4    Saturday
5    Saturday
6      Sunday
7      Monday
8      Sunday
dtype: object

>>> # 查看下半年
>>> daterng[daterng.dt.quarter > 2]
2   2017-09-30
3   2017-12-31
6   2018-09-30
7   2018-12-31
dtype: datetime64[ns]

>>> daterng[daterng.dt.is_year_end]
3   2017-12-31
7   2018-12-31
dtype: datetime64[ns]复制代码
Copier après la connexion

Les trois méthodes de dt ci-dessus sont expliquées :

  • Series.dt.day_name() : Juger le jour de la semaine à partir de la date ; 🎜>
  • Series.dt. quarter : Déterminez la saison à partir de la date
  • Series.dt.is_year_end : Déterminez si c'est la fin du ; année à partir de la date ;
D'autres méthodes sont également basées sur certaines transformations de datetime et utilisent des transformations pour afficher des dates micro ou macro spécifiques.

Utilisation de l'objet cat

Type de données série : Catégorie

Avant de parler de l'utilisation de l'objet cat, parlons du type de données Catégorie. L'effet est très puissant. Bien que nous n'exécutions pas fréquemment des données g en mémoire, nous rencontrons toujours des situations dans lesquelles l'exécution de quelques lignes de code attendra longtemps. L'un des avantages de l'utilisation des données de catégorie est que

permet de gagner du temps et de l'espace. Apprenons à travers plusieurs exemples.

>>> colors = pd.Series([
...     &#39;periwinkle&#39;,
...     &#39;mint green&#39;,
...     &#39;burnt orange&#39;,
...     &#39;periwinkle&#39;,
...     &#39;burnt orange&#39;,
...     &#39;rose&#39;,
...     &#39;rose&#39;,
...     &#39;mint green&#39;,
...     &#39;rose&#39;,
...     &#39;navy&#39;
... ])
...
>>> import sys
>>> colors.apply(sys.getsizeof)
0    59
1    59
2    61
3    59
4    61
5    53
6    53
7    59
8    53
9    53
dtype: int64复制代码
Copier après la connexion

Ci-dessus, nous utilisons

sys.getsizeof pour afficher l'utilisation de la mémoire, et le nombre représente le nombre d'octets. Il existe une autre façon de calculer l'utilisation du contenu :
memory_usage(), qui sera utilisée plus tard.

Maintenant, nous mappons les valeurs uniques des couleurs ci-dessus à un ensemble d'entiers, puis examinons la mémoire occupée.

>>> mapper = {v: k for k, v in enumerate(colors.unique())}
>>> mapper
{&#39;periwinkle&#39;: 0, &#39;mint green&#39;: 1, &#39;burnt orange&#39;: 2, &#39;rose&#39;: 3, &#39;navy&#39;: 4}

>>> as_int = colors.map(mapper)
>>> as_int
0    0
1    1
2    2
3    0
4    2
5    3
6    3
7    1
8    3
9    4
dtype: int64

>>> as_int.apply(sys.getsizeof)
0    24
1    28
2    28
3    24
4    28
5    28
6    28
7    28
8    28
9    28
dtype: int64复制代码
Copier après la connexion

Remarque : pour le mappage de valeurs entières ci-dessus, vous pouvez également utiliser la méthode plus simple

pd.factorize() à la place.

Nous avons constaté que la mémoire occupée ci-dessus est la moitié de celle utilisée pour l'utilisation du type d'objet. En fait, cette situation est similaire au principe interne du type de données Catégorie.

Différence d'utilisation de la mémoire : La mémoire occupée par Catégorique est proportionnelle au nombre de catégories Catégorielles et à la longueur des données. Au contraire, la mémoire occupée par l'objet est. une constante multipliée par la longueur des données.

Ce qui suit est une comparaison de l'utilisation de la mémoire des objets et de l'utilisation de la mémoire des catégories.

>>> colors.memory_usage(index=False, deep=True)
650
>>> colors.astype(&#39;category&#39;).memory_usage(index=False, deep=True)
495复制代码
Copier après la connexion

上面结果是使用object和Category两种情况下内存的占用情况。我们发现效果并没有我们想象中的那么好。但是注意Category内存是成比例的,如果数据集的数据量很大,但不重复分类(unique)值很少的情况下,那么Category的内存占用可以节省达到10倍以上,比如下面数据量增大的情况:

>>> manycolors = colors.repeat(10)
>>> len(manycolors) / manycolors.nunique() 
20.0

>>> manycolors.memory_usage(index=False, deep=True)
6500
>>> manycolors.astype(&#39;category&#39;).memory_usage(index=False, deep=True)
585复制代码
Copier après la connexion

可以看到,在数据量增加10倍以后,使用Category所占内容节省了10倍以上。

除了占用内存节省外,另一个额外的好处是计算效率有了很大的提升。因为对于Category类型的Series,str字符的操作发生在.cat.categories的非重复值上,而并非原Series上的所有元素上。也就是说对于每个非重复值都只做一次操作,然后再向与非重复值同类的值映射过去。

对于Category的数据类型,可以使用accessor的cat对象,以及相应的属性和方法来操作Category数据。

>>> ccolors = colors.astype(&#39;category&#39;)
>>> ccolors.cat.categories
Index([&#39;burnt orange&#39;, &#39;mint green&#39;, &#39;navy&#39;, &#39;periwinkle&#39;, &#39;rose&#39;], dtype=&#39;object&#39;)复制代码
Copier après la connexion

实际上,对于开始的整数类型映射,我们可以先通过reorder_categories进行重新排序,然后再使用cat.codes来实现对整数的映射,来达到同样的效果。

>>> ccolors.cat.reorder_categories(mapper).cat.codes
0    0
1    1
2    2
3    0
4    2
5    3
6    3
7    1
8    3
9    4
dtype: int8复制代码
Copier après la connexion

dtype类型是Numpy的int8(-127~128)。可以看出以上只需要一个单字节就可以在内存中包含所有的值。我们开始的做法默认使用了int64类型,然而通过pandas的使用可以很智能的将Category数据类型变为最小的类型。

让我们来看一下cat还有什么其它的属性和方法可以使用。下面cat的这些属性基本都是关于查看和操作Category数据类型的。

>>> [i for i in dir(ccolors.cat) if not i.startswith(&#39;_&#39;)]
[&#39;add_categories&#39;,
 &#39;as_ordered&#39;,
 &#39;as_unordered&#39;,
 &#39;categories&#39;,
 &#39;codes&#39;,
 &#39;ordered&#39;,
 &#39;remove_categories&#39;,
 &#39;remove_unused_categories&#39;,
 &#39;rename_categories&#39;,
 &#39;reorder_categories&#39;,
 &#39;set_categories&#39;]复制代码
Copier après la connexion

但是Category数据的使用不是很灵活。例如,插入一个之前没有的值,首先需要将这个值添加到.categories的容器中,然后再添加值。

>>> ccolors.iloc[5] = &#39;a new color&#39;
# ...
ValueError: Cannot setitem on a Categorical with a new category,
set the categories first

>>> ccolors = ccolors.cat.add_categories([&#39;a new color&#39;])
>>> ccolors.iloc[5] = &#39;a new color&#39;  
复制代码
Copier après la connexion

如果你想设置值或重塑数据,而非进行新的运算操作,那么Category类型不是那么有用。

相关免费学习推荐:python教程(视频)

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Résoudre les problèmes courants d'installation de pandas : interprétation et solutions aux erreurs d'installation Résoudre les problèmes courants d'installation de pandas : interprétation et solutions aux erreurs d'installation Feb 19, 2024 am 09:19 AM

Tutoriel d'installation de Pandas : analyse des erreurs d'installation courantes et de leurs solutions, des exemples de code spécifiques sont requis Introduction : Pandas est un puissant outil d'analyse de données largement utilisé dans le nettoyage des données, le traitement des données et la visualisation des données, il est donc très respecté dans le domaine de la science des données. Cependant, en raison de problèmes de configuration de l'environnement et de dépendances, vous pouvez rencontrer des difficultés et des erreurs lors de l'installation de pandas. Cet article vous fournira un didacticiel d'installation de pandas et analysera certaines erreurs d'installation courantes et leurs solutions. 1. Installez les pandas

Comment lire correctement le fichier txt à l'aide de pandas Comment lire correctement le fichier txt à l'aide de pandas Jan 19, 2024 am 08:39 AM

Comment utiliser pandas pour lire correctement les fichiers txt nécessite des exemples de code spécifiques. Pandas est une bibliothèque d'analyse de données Python largement utilisée. Elle peut être utilisée pour traiter une variété de types de données, notamment des fichiers CSV, des fichiers Excel, des bases de données SQL, etc. En même temps, il peut également être utilisé pour lire des fichiers texte, tels que des fichiers txt. Cependant, lors de la lecture de fichiers txt, nous rencontrons parfois quelques problèmes, comme des problèmes d'encodage, des problèmes de délimiteur, etc. Cet article explique comment lire correctement le txt à l'aide de pandas.

méthode d'installation de python pandas méthode d'installation de python pandas Nov 22, 2023 pm 02:33 PM

Python peut installer des pandas en utilisant pip, en utilisant conda, à partir du code source et en utilisant l'outil de gestion de packages intégré IDE. Introduction détaillée : 1. Utilisez pip et exécutez la commande pip install pandas dans le terminal ou l'invite de commande pour installer pandas ; 2. Utilisez conda et exécutez la commande conda install pandas dans le terminal ou l'invite de commande pour installer pandas ; installation et plus encore.

Lisez des fichiers CSV et effectuez une analyse de données à l'aide de pandas Lisez des fichiers CSV et effectuez une analyse de données à l'aide de pandas Jan 09, 2024 am 09:26 AM

Pandas est un puissant outil d'analyse de données qui peut facilement lire et traiter différents types de fichiers de données. Parmi eux, les fichiers CSV sont l’un des formats de fichiers de données les plus courants et les plus utilisés. Cet article expliquera comment utiliser Pandas pour lire des fichiers CSV et effectuer une analyse de données, et fournira des exemples de code spécifiques. 1. Importez les bibliothèques nécessaires Tout d'abord, nous devons importer la bibliothèque Pandas et les autres bibliothèques associées qui peuvent être nécessaires, comme indiqué ci-dessous : importpandasaspd 2. Lisez le fichier CSV à l'aide de Pan

Comment installer des pandas en python Comment installer des pandas en python Dec 04, 2023 pm 02:48 PM

Étapes pour installer pandas en python : 1. Ouvrez le terminal ou l'invite de commande ; 2. Entrez la commande "pip install pandas" pour installer la bibliothèque pandas ; 3. Attendez la fin de l'installation et vous pourrez importer et utiliser la bibliothèque pandas. dans le script Python ; 4. Utiliser Il s'agit d'un environnement virtuel spécifique. Assurez-vous d'activer l'environnement virtuel correspondant avant d'installer pandas ; 5. Si vous utilisez un environnement de développement intégré, vous pouvez ajouter le code « importer des pandas en tant que pd » ; importez la bibliothèque pandas.

Conseils pratiques pour lire les fichiers txt à l'aide de pandas Conseils pratiques pour lire les fichiers txt à l'aide de pandas Jan 19, 2024 am 09:49 AM

Conseils pratiques pour lire les fichiers txt à l'aide de pandas, des exemples de code spécifiques sont requis Dans l'analyse et le traitement des données, les fichiers txt sont un format de données courant. L'utilisation de pandas pour lire les fichiers txt permet un traitement des données rapide et pratique. Cet article présentera plusieurs techniques pratiques pour vous aider à mieux utiliser les pandas pour lire les fichiers txt, ainsi que des exemples de code spécifiques. Lire des fichiers txt avec des délimiteurs Lorsque vous utilisez pandas pour lire des fichiers txt avec des délimiteurs, vous pouvez utiliser read_c

Révéler la méthode efficace de déduplication des données dans Pandas : conseils pour supprimer rapidement les données en double Révéler la méthode efficace de déduplication des données dans Pandas : conseils pour supprimer rapidement les données en double Jan 24, 2024 am 08:12 AM

Le secret de la méthode de déduplication Pandas : un moyen rapide et efficace de dédupliquer les données, qui nécessite des exemples de code spécifiques. Dans le processus d'analyse et de traitement des données, une duplication des données est souvent rencontrée. Les données en double peuvent induire en erreur les résultats de l'analyse, la déduplication est donc une étape très importante. Pandas, une puissante bibliothèque de traitement de données, fournit une variété de méthodes pour réaliser la déduplication des données. Cet article présentera certaines méthodes de déduplication couramment utilisées et joindra des exemples de code spécifiques. Le cas le plus courant de déduplication basée sur une seule colonne dépend de la duplication ou non de la valeur d'une certaine colonne.

Pandas lit facilement les données de la base de données SQL Pandas lit facilement les données de la base de données SQL Jan 09, 2024 pm 10:45 PM

Outil de traitement des données : Pandas lit les données dans les bases de données SQL et nécessite des exemples de code spécifiques. À mesure que la quantité de données continue de croître et que leur complexité augmente, le traitement des données est devenu une partie importante de la société moderne. Dans le processus de traitement des données, Pandas est devenu l'un des outils préférés de nombreux analystes de données et scientifiques. Cet article explique comment utiliser la bibliothèque Pandas pour lire les données d'une base de données SQL et fournit des exemples de code spécifiques. Pandas est un puissant outil de traitement et d'analyse de données basé sur Python

See all articles