Comment diviser une colonne de tuples en colonnes distinctes dans une trame de données Pandas ?

DDD
Libérer: 2024-10-25 02:42:02
original
673 Les gens l'ont consulté

How to split a column of tuples into separate columns in a Pandas dataframe?

Comment extraire des tuples des colonnes du cadre de données Pandas

Problème :

Dans un cadre de données Pandas , il est courant d'avoir des colonnes contenant des tuples. Cependant, travailler avec ces tuples peut s'avérer fastidieux. Pour faciliter l'analyse, il est souvent souhaitable de diviser ces colonnes en plusieurs colonnes contenant les éléments de tuple individuels.

Solution :

Pour convertir une colonne de tuples en colonnes séparées , suivez ces étapes :

  1. Convertissez la colonne en liste de tuples à l'aide de la méthode tolist() :

    <code class="python">column_list = column.tolist()</code>
    Copier après la connexion
  2. Créez un nouveau dataframe de la liste des tuples :

    <code class="python">new_df = pd.DataFrame(column_list, index=dataframe.index)</code>
    Copier après la connexion
  3. Attribuez le nouveau dataframe en tant que nouvelles colonnes au dataframe d'origine :

    <code class="python">dataframe[['column_a', 'column_b']] = new_df[['0', '1']]</code>
    Copier après la connexion

Exemple :

Considérez le dataframe suivant :

<code class="python">>>> d1
   y norm test  y norm train  len(y_train)  len(y_test)  \
0    64.904368    116.151232          1645          549
1    70.852681    112.639876          1645          549

                                    SVR RBF  \
0   (35.652207342877873, 22.95533537448393)
1  (39.563683797747622, 27.382483096332511)

                                        LCV  \
0  (19.365430594452338, 13.880062435173587)
1  (19.099614489458364, 14.018867136617146)

                                   RIDGE CV  \
0  (4.2907610988480362, 12.416745648065584)
1    (4.18864306788194, 12.980833914392477)

                                         RF  \
0   (9.9484841581029428, 16.46902345373697)
1  (10.139848213735391, 16.282141345406522)

                                           GB  \
0  (0.012816232716538605, 15.950164822266007)
1  (0.012814519804493328, 15.305745202851712)

                                             ET DATA
0  (0.00034337162272515505, 16.284800366214057)  j2m
1  (0.00024811554516431878, 15.556506191784194)  j2m
>>></code>
Copier après la connexion

Pour diviser la colonne LCV en colonnes individuelles LCV-a et LCV-b, vous pouvez utiliser le code suivant :

<code class="python">df[['LCV-a', 'LCV-b']] = pd.DataFrame(df['LCV'].tolist(), index=df.index)</code>
Copier après la connexion

La trame de données résultante sera :

<code class="python">>>> df
   y norm test  y norm train  len(y_train)  len(y_test)  \
0    64.904368    116.151232          1645          549
1    70.852681    112.639876          1645          549

                                    SVR RBF  \
0   (35.652207342877873, 22.95533537448393)
1  (39.563683797747622, 27.382483096332511)

                                        LCV-a  LCV-b  \
0  19.365430594452338  13.880062435173587
1  19.099614489458364  14.018867136617146

                                   RIDGE CV  \
0  (4.2907610988480362, 12.416745648065584)
1    (4.18864306788194, 12.980833914392477)

                                         RF  \
0   (9.9484841581029428, 16.46902345373697)
1  (10.139848213735391, 16.282141345406522)

                                           GB  \
0  (0.012816232716538605, 15.950164822266007)
1  (0.012814519804493328, 15.305745202851712)

                                             ET DATA
0  (0.00034337162272515505, 16.284800366214057)  j2m
1  (0.00024811554516431878, 15.556506191784194)  j2m</code>
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!