преобразовать фрейм данных в списки списков в Python - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть такой фрейм данных

    timeslice             host  CPU  outlier
0  2011-01-10 19:28:31     1   56      NaN
1  2012-02-10 18:28:31     2   78      NaN
2  2013-03-10 12:28:31     3    3      3.0
3  2014-04-10 14:28:31     4   98      NaN
4  2015-04-10 14:28:31     7   72      NaN
5  2014-06-10 14:28:31     6    7      7.0
6  2018-04-10 14:28:31     4    9      9.0

, использующий это df.values.tolist() Я могу преобразовать это в списки списков, таких как [['2011-01-10 19:28:31', 1, 56, nan], ['2012-02-10 18:28:31', 2, 78, nan], ['2013-03-10 12:28:31', 3, 3, 3.0], ['2014-04-10 14:28:31', 4, 98, nan]]... Я поставил условие там, но это не сработало.

но я хочу получить только те значения, когда выброс не равен NaN, и я хочу создать вывод, подобный этому .. [ ['2013-03-10 12:28:31', 3, 3, 3.0],[2014-06-10 14:28:31,6,7,7.0],[2018-04-10 14:28:31 ,4 ,9 ,9.0]]

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы можете использовать np.isnan , чтобы создать маску и отфильтровать значения NaN в outlier:

result = df[~np.isnan(df.outlier)].values.tolist()
print(result)

Вывод

[['12:28:31', 3, 3, 3.0], ['14:28:31', 6, 7, 7.0], ['14:28:31', 4, 9, 9.0]]
0 голосов
/ 06 февраля 2019

Используйте dropna сначала с указанным столбцом outlier для проверки NaN s:

L = df.dropna(subset=['outlier']).values.tolist()
print (L)
[['12:28:31', 3, 3, 3.0], ['14:28:31', 6, 7, 7.0], ['14:28:31', 4, 9, 9.0]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...