Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. import numpy.lib
  2. import numpy as np
  3. import pandas as pd
  4. import cPickle as pickle
  5.  
  6. def save_pandas(fname, data):
  7. '''Save DataFrame or Series
  8.  
  9. Parameters
  10. ----------
  11. fname : str
  12. filename to use
  13. data: Pandas DataFrame or Series
  14. '''
  15. np.save(open(fname, 'w'), data)
  16. if len(data.shape) == 2:
  17. meta = data.index,data.columns
  18. elif len(data.shape) == 1:
  19. meta = (data.index,)
  20. else:
  21. raise ValueError('save_pandas: Cannot save this type')
  22. s = pickle.dumps(meta)
  23. s = s.encode('string_escape')
  24. with open(fname, 'a') as f:
  25. f.seek(0, 2)
  26. f.write(s)
  27.  
  28. def load_pandas(fname, mmap_mode='r'):
  29. '''Load DataFrame or Series
  30.  
  31. Parameters
  32. ----------
  33. fname : str
  34. filename
  35. mmap_mode : str, optional
  36. Same as numpy.load option
  37. '''
  38. values = np.load(fname, mmap_mode=mmap_mode)
  39. with open(fname) as f:
  40. numpy.lib.format.read_magic(f)
  41. numpy.lib.format.read_array_header_1_0(f)
  42. f.seek(values.dtype.alignment*values.size, 1)
  43. meta = pickle.loads(f.readline().decode('string_escape'))
  44. if len(meta) == 2:
  45. return pd.DataFrame(values, index=meta[0], columns=meta[1])
  46. elif len(meta) == 1:
  47. return pd.Series(values, index=meta[0])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement