Гипотеза и пустые рамки данных - PullRequest
0 голосов
/ 30 января 2019

Я использую гипотезу для тестирования фреймов данных, и когда они «пустые», я получаю неожиданное поведение.

В приведенном ниже примере у меня есть фрейм данных всех nans, ион рассматривается как объект NoneType, а не как фрейм данных (и поэтому у него нет атрибута notnull()):

Falsifying example: test_merge_csvs_properties(input_df_dict=    {'googletrend.csv':    file  week  trend
 0   NaN   NaN    NaN                                                        
 1   NaN   NaN    NaN                                                        
 2   NaN   NaN    NaN
 3   NaN   NaN    NaN                                 
 4   NaN   NaN    NaN                                                                                                                                                                                  5   NaN   NaN    NaN}
<snip>
Traceback (most recent call last):
  File "/home/chachi/Capstone-SalesForecasting/tests/test_make_dataset_with_composite.py", line 285, in test_merge_csvs_properties                                                                   
    input_dataframe, df_dict = make_dataset.merge_csvs(input_df_dict)
  File "/home/chachi/Capstone-SalesForecasting/tests/../src/data/make_dataset.py", line 238, in merge_csvs                                                                                           
    if dfs_dict['googletrend.csv'].notnull().any().any():
AttributeError: 'NoneType' object has no attribute 'notnull'

Сравнение с сеансом ipython, где фрейм данных всех nans все еще является фреймом данных:

>>> import pandas as pd
>>> import numpy as np
>>> tester = pd.DataFrame({'test': [np.NaN]})
>>> tester
   test
0   NaN
>>> tester.notnull().any().any()
False

Я явно проверяю на notnull(), чтобы учесть все виды патологических примеров.Есть предложения?

1 Ответ

0 голосов
/ 30 января 2019

Похоже, что вы каким-то образом получили None вместо фрейма данных в качестве значения в input_dfs_dict.Можете ли вы опубликовать полный тест, который вы используете, или хотя бы определение функции и стратегию?Один только след не имеет достаточно информации, чтобы рассказать, что происходит.Быстрые вещи для проверки:

  • Может ли стратегия генерировать None вместо фрейма данных здесь?Если это так, то нет ничего загадочного, потому что Гипотеза сообщает, что она может вызвать AttributeError.
  • Если нет, можете ли вы написать более простой тест с использованием только логики и стратегии для этого кадра данных?
...