Maison  >  Article  >  développement back-end  >  Comment diviser une colonne de tuples en colonnes distinctes dans une trame de données Pandas ?

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

DDD
DDDoriginal
2024-10-25 02:42:02676parcourir

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>
  2. Créez un nouveau dataframe de la liste des tuples :

    <code class="python">new_df = pd.DataFrame(column_list, index=dataframe.index)</code>
  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>

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>

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>

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>

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