Py学习  »  Python

用python将数据帧转换成列表

arjun • 4 年前 • 758 次点击  

我有一个这样的数据框

    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]]

提前谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51842
 
758 次点击  
文章 [ 2 ]  |  最新文章 4 年前
RaySteam
Reply   •   1 楼
RaySteam    5 年前

你可以用 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]]
jezrael
Reply   •   2 楼
jezrael    5 年前

使用 dropna 第一个指定列 outlier 核对 NaN 学生:

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]]