Maison  >  Article  >  développement back-end  >  Comment fonctionnent les arguments \'levels\', \'keys\' et \'names\' dans la fonction concat de Pandas pour créer un MultiIndex ?

Comment fonctionnent les arguments \'levels\', \'keys\' et \'names\' dans la fonction concat de Pandas pour créer un MultiIndex ?

DDD
DDDoriginal
2024-10-31 20:28:29498parcourir

How do the 'levels', 'keys', and 'names' arguments in Pandas' concat function work to create a MultiIndex?

À quoi servent les arguments « niveaux », « clés » et noms dans la fonction concat de Pandas ?

1. Introduction

La fonction pandas.concat() est un outil puissant pour combiner plusieurs séries ou DataFrames le long d'un axe spécifié. Il propose un certain nombre d'arguments facultatifs, notamment des niveaux, des clés et des noms, qui peuvent être utilisés pour personnaliser le MultiIndex résultant.

2. Niveaux

L'argument niveaux est utilisé pour spécifier les niveaux du MultiIndex résultant. Par défaut, Pandas déduira les niveaux à partir de l'argument clés. Cependant, vous pouvez remplacer les niveaux déduits en passant une liste de séquences à l'argument niveaux.

Par exemple, le code suivant concatène deux DataFrames le long des lignes, en utilisant un MultiIndex à deux niveaux :

<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]})

df = pd.concat([df1, df2], keys=['df1', 'df2'], levels=['level1', 'level2'])

print(df)

      level1 level2  A  B  C  D
0    df1     1    1  3  5  7
1    df1     2    2  4  6  8</code>

Dans cet exemple, l'argument niveaux est une liste de deux séquences : ['level1', 'level2']. Cela crée un MultiIndex avec deux niveaux : « niveau1 » et « niveau2 ». L'argument clés est une liste de deux chaînes : ['df1', 'df2']. Cela attribue respectivement les valeurs « df1 » et « df2 » aux premier et deuxième niveaux du MultiIndex.

3. Clés

L'argument clés est utilisé pour spécifier les clés du MultiIndex résultant. Par défaut, Pandas utilisera les étiquettes d'index des objets d'entrée comme clés. Cependant, vous pouvez remplacer les clés par défaut en passant une liste de valeurs à l'argument clés.

Par exemple, le code suivant concatène deux DataFrames le long des lignes, en utilisant un MultiIndex à trois niveaux :

<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]})

df = pd.concat([df1, df2], keys=[('A', 'B'), ('C', 'D')])

print(df)

    level1 level2  A  B  C  D
0     A      B    1  3  5  7
1     C      D    2  4  6  8</code>

Dans cet exemple, l'argument clés est une liste de deux tuples : [('A', 'B'), ('C', 'D')]. Cela crée un MultiIndex avec trois niveaux : « niveau1 », « niveau2 » et « niveau3 ». L'argument clés attribue les valeurs 'A' et 'B' au premier niveau du MultiIndex, et les valeurs 'C' et 'D' au deuxième niveau du MultiIndex.

4. Noms

L'argument noms est utilisé pour spécifier les noms des niveaux du MultiIndex résultant. Par défaut, Pandas utilisera les noms des étiquettes d'index des objets d'entrée comme noms de niveaux. Cependant, vous pouvez remplacer les noms par défaut en passant une liste de chaînes à l'argument noms.

Par exemple, le code suivant concatène deux DataFrames le long des lignes, en utilisant un MultiIndex à deux niveaux :

<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]})

df = pd.concat([df1, df2], keys=['df1', 'df2'], names=['level1', 'level2'])

print(df)

      level1 level2  A  B  C  D
0    df1     1    1  3  5  7
1    df1     2    2  4  6  8</code>

Dans cet exemple, l'argument noms est une liste de deux chaînes : ['level1', 'level2']. Cela attribue respectivement les noms « niveau1 » et « niveau2 » aux premier et deuxième niveaux du MultiIndex.

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:
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