Преобразовать фрейм данных python в список

У меня есть Python dataFrame с несколькими столбцами.

  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]  

Я хочу найти BayFails, связанный с LogBlk = 0, и Page = 0.

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

Это вернет [0,1,8,9]

Что я хочу сделать, это преобразовать эти pandas.series в список. Кто-нибудь знает, как это сделать?

Ответ 1

pandas.Series, имеет 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]

Техническое примечание. В моем первоначальном ответе я сказал, что Series был подклассом numpy.ndarray и унаследовал его метод tolist. Хотя это верно для Pandas версии 0,12 или более поздней версии, в скоро появляющейся версии Pandas версии 0.13, Series был реорганизован как подкласс NDFrame. Series все еще имеет метод tolist, но он не имеет прямого отношения к методу numpy.ndarray с тем же именем.

Ответ 2

Вы также можете преобразовать их в 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