奇怪的行为:在pandas数据框中显然是一个numpy nan显示为dtype('float64')

时间:2016-01-08 00:09:46

标签: python numpy pandas

我正在处理一个包含许多自定义函数,库和计算的数据框。在做了一些关键的计算之后,我注意到计算中的一些错误应该返回一个浮点数:

enter image description here

要检查其中一项计算,我会执行以下操作。

nan

返回(小型大写

dFA.loc['20101120']['variable x'] == np.nan

然后,为了确认这件事看起来像一个奇怪的(小帽子)numpy.nan( True False )我做:

False

返回:

dFA.loc['20101120']['variable x'].dtype

然后我这样做:

dtype('float64')

返回:

dFA.loc['20101120']['variable x'] > 1000
False

此外:

dFA.loc['20101120']['variable x'] < 1000
False

此外:

    var driver = browser.driver;
    var loc = by.tagName('iframe');
    var el = driver.findElement(loc);
    browser.switchTo().frame(el);

    driver.findElement(by.tagName('body')).sendKeys('my test string');

    browser.switchTo().defaultContent();
    browser.waitForAngular();

2 个答案:

答案 0 :(得分:3)

dFA.loc['20101120']['variable x'] == np.nan

糟糕。 NaN永远不等于NaN。

np.isnan(dFA.loc['20101120']['variable x'])

答案 1 :(得分:2)

public class Dealer1 { public DAL.DBConn_Nav db = null; public Dealer1() { } public IQueryable<outerViewModel.NavisionDAL.vmDealer> getDealer_query() { IQueryable<vmDealer> dealer = (from d in db.DENTALICA_S_P_A__Customer select new vmDealer() { idDealer = d.No_, name = d.Name + (d.Name_2.Length > 0 ? " " + d.Name_2 : "") }); return dealer; } } public class Customer1 { public DAL.DBConn_Nav db = null; public Customer1() { } public IQueryable<outerViewModel.NavisionDAL.vmDealer> getCustomerForOperator_query() { // All customers G4.Models.NavisionDAL.Dealer1 oD = new G4.Models.NavisionDAL.Dealer1(); IQueryable<outerViewModel.NavisionDAL.vmDealer> allCustomerList_query = oD.getDealer_query().Where(i => i.name.StartsWith("AAA")); return allCustomerList_query; } public List<G4.outerViewModel.NavisionDAL.vmDealer> getCustomerForOperator() { using (db = new DAL.DBConn_Nav()) { return getCustomerForOperator_query().ToList(); } } } 的所有比较均按definition评估为np.nan

False

>>> np.nan == np.nan False >>> np.nan <= 1 False >>> np.nan > 1 False 一个浮动:

np.nan

......只是一个非常特别的人。