web-dev-qa-db-fra.com

convertir python dataframe en liste

J'ai un Python dataFrame avec plusieurs colonnes.

  LogBlk    Page                                    BayFail       
  0          0                                 [0, 1, 8, 9]  
  1          16           [0, 1, 4, 5, 6, 8, 9, 12, 13, 14]  
  2          32           [0, 1, 4, 5, 6, 8, 9, 12, 13, 14]  
  3          48           [0, 1, 4, 5, 6, 8, 9, 12, 13, 14]  

Je veux trouver BayFails associé à LogBlk = 0 et Page = 0.

df2 = df[ (df['Page'] == 16) & (df['LogBlk'] == 0) ]['BayFail']

Cela renverra [0,1,8,9]

Ce que je veux faire, c'est convertir ce pandas.series en liste. Est-ce que quelqu'un sait comment faire ça?

17
user1452849

pandas.Series, a une méthode tolist :

In [10]: import pandas as pd

In [11]: s = pd.Series([0,1,8,9], name = 'BayFail')

In [12]: s.tolist()
Out[12]: [0L, 1L, 8L, 9L]

Note technique: dans ma réponse d'origine, j'ai dit que Series était une sous-classe de numpy.ndarray et a hérité de sa méthode tolist. Bien que cela soit vrai pour Pandas version 0.12 ou plus ancienne, dans la prochaine version Pandas version 0.13, Series a été refactorisé) pour être une sous-classe de NDFrame. Series a toujours une méthode tolist, mais elle n'a pas de relation directe avec le numpy.ndarray méthode du même nom.

36
unutbu

Vous pouvez également les convertir en numpy arrays

In [124]: s = pd.Series([0,1,8,9], name='BayFail')

In [125]: a = pd.np.array(s)
Out[125]: array([0, 1, 8, 9], dtype=int64)

In [126]: a[0]
Out[126]: 0
4
user1987630