Я использую гипотезу для тестирования фреймов данных, и когда они «пустые», я получаю неожиданное поведение.
В приведенном ниже примере у меня есть фрейм данных всех 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()
, чтобы учесть все виды патологических примеров.Есть предложения?