Dans Pandas, gérer des DataFrames contenant des colonnes de listes peut être difficile lorsque vous souhaitez avoir chacune élément de liste représenté sous la forme d’une ligne distincte. C'est là que la méthode .explode() entre en jeu.
Pandas ≥ 0.25
Pour les versions Pandas 0.25 et supérieures, ce qui change la donne est le .explode( ) méthode. Il vous permet d'exploser une colonne de type liste en lignes séparées, la convertissant ainsi de sa forme longue en une forme large.
import pandas as pd # Sample DataFrame df = pd.DataFrame({ 'trial_num': [1, 2, 3, 1, 2, 3], 'subject': [1, 1, 1, 2, 2, 2], 'samples': [list(np.random.randn(3).round(2)) for i in range(6)] }) # Explode using .explode() exploded_df = df.explode('samples') # Reset index to be monotonically increasing (optional) exploded_df = exploded_df.reset_index(drop=True) print(exploded_df) # Output: # subject trial_num sample # 0 1 1 0.57 # 1 1 1 -0.83 # 2 1 1 1.44 # 3 1 2 -0.01 # 4 1 2 1.13 # 5 1 2 0.36 # 6 1 3 1.18 # 7 2 1 -0.08 # 8 2 1 -4.22 # 9 2 1 -2.05 # 10 2 2 0.72 # 11 2 2 0.79 # 12 2 2 0.53 # 13 2 3 0.4 # 14 2 3 -0.32 # 15 2 3 -0.13
Notez que .explode() fonctionne sur une seule colonne à la fois. Pour les colonnes contenant des types mixtes (par exemple, des listes et des scalaires), .explode() se comporte de manière judicieuse et préserve les listes vides et les NaN.
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!