PageRenderTime 55ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/python/pandas_2.py

https://bitbucket.org/jaredlander/lab
Python | 86 lines | 62 code | 17 blank | 7 comment | 0 complexity | 40a0b27f562e799a719771f753ee6244 MD5 | raw file
  1. import numpy as np
  2. import pandas as pd
  3. arr = np.arange(4).astype('float64')
  4. arr[2] = np.nan
  5. def sample_stdev(arr):
  6. # convert to dataframe
  7. df = pd.DataFrame(arr)
  8. # drop na samples
  9. df = df.dropna()
  10. # return std dev, just it's values, not the full df
  11. return df.std().value
  12. def sample_stdev2(arr):
  13. arr = arr[-np.isnan(arr)]
  14. results = np.std(arr)
  15. return results
  16. x = np.array([np.nan, 1, 2])
  17. sample_stdev(x)
  18. sample_stdev2(x)
  19. from pandas import Series, DataFrame
  20. goog = returns.ix[:, "GOOG"]
  21. goog = returns.GOOG
  22. val = [1, 2, 3]
  23. labels = ['A', 'B', 'C']
  24. s = Series(val, labels)
  25. s.ix['A':'B']
  26. s.values
  27. # series is one dimension of a DataFrame, like a vector
  28. val = [np.nan, 1, 2]
  29. s = Series(val, labels)
  30. s.std()
  31. s.mean()
  32. s.max()
  33. # let's make a DataFrame
  34. val = [[1, 2, 3],
  35. [4, 5, 6],
  36. [7, 8, 9]]
  37. rows = ['B', 'C', 'D']
  38. cols = ['X', 'Y', 'Z']
  39. df = DataFrame(val, rows, cols)
  40. df.ix['C', 'Y']
  41. df.ix[['C', 'B'], 'Y']
  42. type(df.ix[['C', 'B'], 'Y'])
  43. df.ix[['C', 'B'], ['X', 'Y']]
  44. df.index
  45. df.columns
  46. df.values
  47. val = [1, 2, 3]
  48. s = Series(val, labels)
  49. s2 = df.ix[:, 'Y']
  50. s + s2
  51. s.add(s2, fill_value=0)
  52. df.sum()
  53. df.sum(axis=1)
  54. df.mean()
  55. df.std()
  56. def cond_mean(returns):
  57. # avg daily returns of GOOG when AAPL is UP
  58. # and also when AAPL is DOWN
  59. ret1 = returns.ix[:, 0]
  60. ret2 = returns.ix[:, 1]
  61. mask = ret2 > 0
  62. up1 = ret1[mask]
  63. down1 = ret1[-mask]
  64. s = Series([up1.mean(), down1.mean()], ['UP', 'DOWN'])
  65. return s
  66. rs = cond_mean(returns)
  67. assert type(rs) == Series
  68. val = [number, other_number]
  69. Series(Val, ['UP', 'DOWN']