User Tools

Site Tools


tutorials:python_quick_reference

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
tutorials:python_quick_reference [2021/03/19 02:50]
marcus.williams [Data interrogation]
tutorials:python_quick_reference [2021/08/06 14:20]
marcus.williams [Data import and export]
Line 76: Line 76:
 <​code>​ <​code>​
 df_structure = gpd.read_file(myLayers.gdb,​ layer='​structure'​) df_structure = gpd.read_file(myLayers.gdb,​ layer='​structure'​)
 +</​code>​
 +
 +Round trip export/​import for json files, as Python dictionaries or lists. Requires ''​import json''​.
 +
 +<​code>​
 +filename = '​folderX/​list_CEUDSector_ind.json'​
 +with open(filename,​ '​w',​ encoding='​utf-8'​) as f:
 +    json.dump(l_CEUDSector_ind,​ f, ensure_ascii=False,​ indent=4)
 +</​code>​
 +
 +<​code>​
 +filename = '​folderX/​list_CEUDSector_ind.json'​
 +with open(filename) as data_file:
 +    l_CEUDSector_ind= json.load(data_file)
 </​code>​ </​code>​
  
Line 105: Line 119:
 <​code>​ <​code>​
 pt_structure = pd.pivot_table(df_structure,​ pt_structure = pd.pivot_table(df_structure,​
-    '​OBJECTID',​+    ​values='​OBJECTID',​
     index=['​propType'​],​     index=['​propType'​],​
     columns=['​strucType'​],​     columns=['​strucType'​],​
     margins=True,​     margins=True,​
-    aggfunc=len)+    aggfunc=np.sum)
 </​code>​ </​code>​
 [[http://​pandas.pydata.org/​pandas-docs/​stable/​generated/​pandas.pivot_table.html#​pandas.pivot_table|ref]] | [[http://​pandas.pydata.org/​pandas-docs/​stable/​generated/​pandas.pivot_table.html#​pandas.pivot_table|ref]] |
Line 153: Line 167:
 df_structure['​finalID'​] = np.where(df_structure.condoID.isnull(),​ df_structure['​finalID'​] = np.where(df_structure.condoID.isnull(),​
     df_structure.normalID,​ df_structure.condoID)     df_structure.normalID,​ df_structure.condoID)
 +</​code>​
 +
 +**where()**,​ **mask()**
 +Replace if condition is false and true respectively.
 +<​code>​
 +df_8.mask(df_8 > 5.0, 5.0)
 </​code>​ </​code>​
  
Line 166: Line 186:
 df.reset_index() df.reset_index()
 </​code>​ </​code>​
 +
 +Remove an unwanted level
 +<​code>​
 +df.columns = df.columns.get_level_values('​CEUDEndUse_res'​)
 +</​code>​
 +
 ===== Dropping/​deleting data ===== ===== Dropping/​deleting data =====
  
Line 408: Line 434:
 git pull origin master git pull origin master
 </​code>​ </​code>​
 +
 +===== Handy Matrix & Vector Operations =====
 +
 +**shares / norm**
 +
 +each row sums to 1
 +<​code>​
 +df_shr = df_quantity.div(df_quantity.sum(axis='​columns'​),​ axis='​index'​))
 +</​code>​
 +
 +each column sums to 1
 +<​code>​
 +df_shr = df_quantity.div(df_quantity.sum(axis='​index'​),​ axis='​columns'​))
 +</​code>  ​
 +
 +===== Jupyter Notebook Markdown Tricks ===== 
 +Links
 +<​code>​
 +[Github](http://​github.com)
 +</​code>​
 +
 +
 +Embed an image
 +<​code>​
 +![title](img/​S_res_1.png)
 +</​code>​
 +
 +===== Python Debugger (PDB) ===== 
 +[[https://​docs.python.org/​3/​library/​pdb.html|ref]]
 +
 +<​code>​
 +import pdb; pdb.set_trace()
 +</​code>​
 +
 +''​n''​ for next line; ''​c''​ to continue; ''​s''​ for step; ''​exit''​ for exit
 ===== Other functions ===== ===== Other functions =====
 ==== A ==== ==== A ====
Line 533: Line 594:
 <​code>​ <​code>​
 set([1,​2,​3]) - set([2,​3,​4]) set([1,​2,​3]) - set([2,​3,​4])
 +</​code>​
 +
 +See other set [[https://​www.w3schools.com/​python/​python_ref_set.asp|operations]] including:
 +<​code>​
 +set1.union(set2)
 +set1.intersection(set2)
 </​code>​ </​code>​
 ==== T ==== ==== T ====
tutorials/python_quick_reference.txt ยท Last modified: 2021/08/06 22:20 by marcus.williams