Maison >développement back-end >Tutoriel Python >Comment diviser une colonne de tuples en colonnes distinctes dans une trame de données Pandas ?
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 :
Convertissez la colonne en liste de tuples à l'aide de la méthode tolist() :
<code class="python">column_list = column.tolist()</code>
Créez un nouveau dataframe de la liste des tuples :
<code class="python">new_df = pd.DataFrame(column_list, index=dataframe.index)</code>
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!