假设和空的 DataFrames
Hypothesis and empty-ish DataFrames
我正在使用 Hypothesis 测试数据帧,当它们 "empty-ish" 我遇到了一些意外行为。
在下面的示例中,我有一个所有 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()
以允许各种病态示例。有什么建议吗?
看起来您以某种方式结束了 None 而不是数据帧作为 input_dfs_dict
中的值。你能 post 你正在使用的完整测试,或者至少是函数定义和策略吗?单独的回溯并没有足够的信息来说明发生了什么。快速检查事项:
- 该策略可以在此处生成 None 而不是数据框吗?如果是这样,就没有什么神秘的了,因为 Hypothesis 报告说它可以触发 AttributeError。
- 如果没有,您能否仅使用此数据帧的逻辑和策略编写一个更简单的测试?
我正在使用 Hypothesis 测试数据帧,当它们 "empty-ish" 我遇到了一些意外行为。
在下面的示例中,我有一个所有 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()
以允许各种病态示例。有什么建议吗?
看起来您以某种方式结束了 None 而不是数据帧作为 input_dfs_dict
中的值。你能 post 你正在使用的完整测试,或者至少是函数定义和策略吗?单独的回溯并没有足够的信息来说明发生了什么。快速检查事项:
- 该策略可以在此处生成 None 而不是数据框吗?如果是这样,就没有什么神秘的了,因为 Hypothesis 报告说它可以触发 AttributeError。
- 如果没有,您能否仅使用此数据帧的逻辑和策略编写一个更简单的测试?