我有一个像这样的数据框
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]]
预先感谢
答案 0 :(得分:1)
首先将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]]
答案 1 :(得分:0)
您可以使用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]]