将 "assertTrue" 单元测试应用于 pandas DataFrame?
Apply "assertTrue" unit testing to pandas DataFrame?
使用 python 的单元测试,如何检查 pandas DataFrame df
的列名是否与列表的列名一致?
import unittest
column_names_list = ["col1","col2","col3"]
assertTrue(df.columns in column_names_list)
例如,我应该为此得到 False df
:
col1 col2 col3 col4
aasa 4546 5643 shsh
...
使用 set
你可以找到两个列表之间的区别 assert
那是 0
In [40]: assert len(set(df.columns) - set(['A', 'B', 'C'])) == 0
In [41]: assert len(set(df.columns) - set(['A', 'B', 'D'])) == 0
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
----> 1 assert len(set(df.columns) - set(['A', 'B', 'D'])) == 0
你也可以使用集合相等。这样断言错误可能更有帮助(对集合使用大括号):
匹配
df = pd.DataFrame([], columns=['col1', 'col2', 'col3'])
assert set(df.columns) == {'col1', 'col2', 'col3'}
不匹配
df = pd.DataFrame([], columns=['col1', 'col2'])
assert set(df.columns) == {'col1', 'col2', 'col3'}
使用 python 的单元测试,如何检查 pandas DataFrame df
的列名是否与列表的列名一致?
import unittest
column_names_list = ["col1","col2","col3"]
assertTrue(df.columns in column_names_list)
例如,我应该为此得到 False df
:
col1 col2 col3 col4
aasa 4546 5643 shsh
...
使用 set
你可以找到两个列表之间的区别 assert
那是 0
In [40]: assert len(set(df.columns) - set(['A', 'B', 'C'])) == 0
In [41]: assert len(set(df.columns) - set(['A', 'B', 'D'])) == 0
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
----> 1 assert len(set(df.columns) - set(['A', 'B', 'D'])) == 0
你也可以使用集合相等。这样断言错误可能更有帮助(对集合使用大括号):
匹配
df = pd.DataFrame([], columns=['col1', 'col2', 'col3'])
assert set(df.columns) == {'col1', 'col2', 'col3'}
不匹配
df = pd.DataFrame([], columns=['col1', 'col2'])
assert set(df.columns) == {'col1', 'col2', 'col3'}