遮罩功能不会清除不需要的数据

时间:2019-06-23 08:06:07

标签: python pandas iot

我正在处理从Adafruit IO获取的数据帧,可悲的是,我的一些数据来自我的项目发生故障的时候,因此某些值仅等于NaN。

我试图通过键入以下代码行将其删除:

    onlyValidData=temp_data.mask(temp_data['value'] =='NaN')
    onlyValidData

这是从Adafruit IO Feed中获取的数据,被熊猫分析了,我也尝试过使用“ where”功能,但是它不起作用

我的整个代码是

import pandas as pd

temp_data = pd.read_json('https://io.adafruit.com/api/(...)')
light_data = pd.read_json('https://io.adafruit.com/api/(...)')
temp_data['created_at'] =  pd.to_datetime(temp_data['created_at'], infer_datetime_format=True)

temp_data = temp_data.set_index('created_at')

light_data['created_at'] =  pd.to_datetime(light_data['created_at'], infer_datetime_format=True)
light_data = light_data.set_index('created_at')

tempVals = pd.Series(temp_data['value'])
lightVals = pd.Series(light_data['value'])

onlyValidData=temp_data.mask(temp_data['value'] =='NaN')
onlyValidData

由于某种原因,输出是我的所有数据,但应该只是有效值。

1 个答案:

答案 0 :(得分:0)

嘿,我认为这里的问题是您正在寻找等于字符串'NaN'的值,而实际的NaN值不是字符串,或者更确切地说不是任何东西。

尝试使用:

onlyValidData = temp_data.mask(temp_data['value'].isnull())

编辑:删除行,而不是将该行中的所有值标记为NaN:

onlyValidData = temp_data.dropna()