PageRenderTime 109ms CodeModel.GetById 5ms RepoModel.GetById 0ms app.codeStats 0ms

/statsmodels/tools/tests/test_data.py

https://github.com/danielballan/statsmodels
Python | 51 lines | 40 code | 8 blank | 3 comment | 0 complexity | dfcaeab39b36fd841365e2cb4013146c MD5 | raw file
Possible License(s): BSD-3-Clause
  1. import pandas
  2. import numpy as np
  3. from statsmodels.tools import data
  4. def test_missing_data_pandas():
  5. """
  6. Fixes GH: #144
  7. """
  8. X = np.random.random((10,5))
  9. X[1,2] = np.nan
  10. df = pandas.DataFrame(X)
  11. vals, cnames, rnames = data.interpret_data(df)
  12. np.testing.assert_equal(rnames.tolist(), [0,2,3,4,5,6,7,8,9])
  13. def test_structarray():
  14. X = np.random.random((9,)).view([('var1', 'f8'),
  15. ('var2', 'f8'),
  16. ('var3', 'f8')])
  17. vals, cnames, rnames = data.interpret_data(X)
  18. np.testing.assert_equal(cnames, X.dtype.names)
  19. np.testing.assert_equal(vals, X.view((float,3)))
  20. np.testing.assert_equal(rnames, None)
  21. def test_recarray():
  22. X = np.random.random((9,)).view([('var1', 'f8'),
  23. ('var2', 'f8'),
  24. ('var3', 'f8')])
  25. vals, cnames, rnames = data.interpret_data(X.view(np.recarray))
  26. np.testing.assert_equal(cnames, X.dtype.names)
  27. np.testing.assert_equal(vals, X.view((float,3)))
  28. np.testing.assert_equal(rnames, None)
  29. def test_dataframe():
  30. X = np.random.random((10,5))
  31. df = pandas.DataFrame(X)
  32. vals, cnames, rnames = data.interpret_data(df)
  33. np.testing.assert_equal(vals, df.values)
  34. np.testing.assert_equal(rnames.tolist(), df.index.tolist())
  35. np.testing.assert_equal(cnames, df.columns.tolist())
  36. def test_patsy_577():
  37. X = np.random.random((10, 2))
  38. df = pandas.DataFrame(X, columns=["var1", "var2"])
  39. from patsy import dmatrix
  40. endog = dmatrix("var1 - 1", df)
  41. np.testing.assert_(data._is_using_patsy(endog, None))
  42. exog = dmatrix("var2 - 1", df)
  43. np.testing.assert_(data._is_using_patsy(endog, exog))