-
Notifications
You must be signed in to change notification settings - Fork 232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added Pandas cheatsheet #112
Open
Dhruvsinghjadon
wants to merge
7
commits into
onecompiler:master
Choose a base branch
from
Dhruvsinghjadon:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 5 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
5ec6d7b
Create Pandas.md
Dhruvsinghjadon f30c918
Update Pandas.md
Dhruvsinghjadon 57cdc46
Update Pandas.md
Dhruvsinghjadon f81be64
Create Angular.md
Dhruvsinghjadon f4c0e9e
Update Angular.md
Dhruvsinghjadon bdd2652
Rename Angular.md to angular.md
Dhruvsinghjadon 09c2dcd
Create numpy.md
Dhruvsinghjadon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# Angular CLI | ||
|
||
| Command | Meaning | | ||
|-----------------------------------------|--------------------------------------------------------------------------------| | ||
| | | | ||
| npm install -g @angular/cli | To install the Angular CLI into our local machine using npm, run this command. | | ||
| ng version | Displays the information about the currently installed CLI. | | ||
| ng new <application name> | Using the ng new command, a new Angular application will be created. | | ||
| ng new <application name> --prefix best | New project is created, and the project prefix is set to new. | | ||
| ng new --help | All available Angular commands are returned by this command. | | ||
| ng lint my-app | Linting warnings are checked against this command in our entire application. | | ||
| ng lint my-app --fix | This command will correct any form of linting errors. | | ||
| ng lint my-app --format stylish | Our entire codebase is formatted using this command. | | ||
| ng lint my-app --help | The list of linting commands is returned by this command. | | ||
| ng build | An application is created and stored in the dist directory using this command. | | ||
| ng serve | The local development server is launched, and the app is served locally in the browser. Port and open are both specified. When you change any of the source files, the app is rebuilt and reloaded, and the page is changed automatically. | | ||
| ng serve -o | This command opens up the application in a browser using any port 4200 or any available port | | ||
| ng serve -ssl | This command enables the application to be accessed using SSL. | | ||
| ng generate | To produce elements, services, components, classes, providers, pipes, and other types of modules. | | ||
| ng g c MyComponent -d | This dry runs the code and helps in cleaning the command line clean. | | ||
# Angular Lifecycle Hooks | ||
| ngOnChanges | The content is processed or child views are loaded before this hook is executed. It is also executed when the input properties of the component change. | | ||
|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| ngOnInit | Data can be initialized in a component by calling this hook after input values are set. It is performed only once after input values are set. | | ||
| ngOnDestroy | You can use this hook to clean up memory and release resources and subscriptions after a component is destroyed. | | ||
| ngDoCheck | Any changes detected are handled using this hook. | | ||
| ngAfterContentInit | After performing content projection into the component's view, Angular invokes this hook before evaluating the expression. | | ||
| ngAfterContentChecked | Angular's change detection mechanism checks the content of all components once every time they are rendered, so this hook is called each time change is detected. | | ||
| ngAfterViewChecked | This hook is invoked after every check of the component's views and its child views. | | ||
# DECORATORS | ||
| Class Decorators | Details | | ||
|-------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| @Component({...}) class MyComponent() {} | Metadata about a component is declared as part of the class definition. | | ||
| @Directive({...})class MyDirective() {} | Declares the class as a directive and provides metadata about the directive | | ||
| @Pipe({...}) class MyPipe() {} | Declares the class as a pipe and provides metadata about the pipe. | | ||
| @Injectable() class MyService() {} | This declares that class can be injected and provided. Without this decorator, the compiler does not generate enough metadata to allow the class to be created properly when it is injected somewhere. | | ||
| import { Directive, ... } from'@angular/core'; | This imports the Directive from @angular/core | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,327 @@ | ||
# Import | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. CheatSheet metadata is missing, please refer other cheat sheets to see how to add that. Also please use all lowercase letters for file name There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. okk |
||
```py | ||
import numpy as np | ||
import matplotlib.pyplot as plt | ||
import pandas as pd | ||
from pandas import DataFrame, Series | ||
|
||
%matplotlib inline | ||
%load_ext autoreload | ||
%autoreload 2 | ||
|
||
# from __future__ import division | ||
from import_file import * | ||
from helpers.parallel_helper import * | ||
load_libs() | ||
|
||
``` | ||
# Input | ||
```py | ||
df = DataFrame() | ||
|
||
#CSV | ||
df = pd.read_csv('file.csv') | ||
df = pd.read_csv('file.csv', header=0, index_col=0, quotechar='"',sep=':', na_values = ['na', '-', '.', '']) | ||
# specifying "." and "NA" as missing values in the Last Name column and "." as missing values in Pre-Test Score column | ||
df = pd.read_csv('../data/example.csv', na_values={'Last Name': ['.', 'NA'], 'Pre-Test Score': ['.']}) | ||
df = pd.read_csv('../data/example.csv', na_values=sentinels, skiprows=3) # skipping the top 3 rows | ||
df = pd.read_csv('../data/example.csv', thousands=',') # interpreting "," in strings around numbers as thousands separators | ||
|
||
# CSV (Inline) | ||
from io import StringIO | ||
data = """, Animal, Cuteness, Desirable | ||
row-1, dog, 8.7, True | ||
row-2, cat, 9.5, True | ||
row-3, bat, 2.6, False""" | ||
df = pd.read_csv(StringIO(data), | ||
header=0, index_col=0, | ||
skipinitialspace=True) | ||
|
||
# JSON | ||
import json | ||
json_data = open('data-text.json').read() | ||
data = json.loads(json_data) | ||
for item in data: | ||
print item | ||
|
||
# XML | ||
from xml.etree import ElementTree as ET | ||
tree = ET.parse('../../data/chp3/data-text.xml') | ||
root = tree.getroot() | ||
print root | ||
data = root.find('Data') | ||
all_data = [] | ||
for observation in data: | ||
record = {} | ||
for item in observation: | ||
lookup_key = item.attrib.keys()[0] | ||
if lookup_key == 'Numeric': | ||
rec_key = 'NUMERIC' | ||
rec_value = item.attrib['Numeric'] | ||
else: | ||
rec_key = item.attrib[lookup_key] | ||
rec_value = item.attrib['Code'] | ||
record[rec_key] = rec_value | ||
all_data.append(record) | ||
print all_data | ||
|
||
# Excel | ||
workbook = pd.ExcelFile('file.xlsx') | ||
d = {} # start with an empty dictionary | ||
for sheet_name in workbook.sheet_names: # Each Excel sheet in a Python dictionary | ||
df = workbook.parse(sheet_name) | ||
d[sheet_name] = df | ||
|
||
# MySQL | ||
import pymysql | ||
from sqlalchemy import create_engine | ||
engine = create_engine('mysql+pymysql://' | ||
+'USER:PASSWORD@HOST/DATABASE') | ||
df = pd.read_sql_table('table', engine) | ||
(<a href="#top">Back to top</a>) | ||
|
||
|
||
|
||
### Combine DataFrame | ||
Data in Series then combine into a DataFrame | ||
```python | ||
# Example 1 ... | ||
s1 = Series(range(6)) | ||
s2 = s1 * s1 | ||
s2.index = s2.index + 2# misalign indexes | ||
df = pd.concat([s1, s2], axis=1) | ||
# Example 2 ... | ||
s3 = Series({'Tom':1, 'Dick':4, 'Har':9}) | ||
s4 = Series({'Tom':3, 'Dick':2, 'Mar':5}) | ||
df = pd.concat({'A':s3, 'B':s4 }, axis=1) | ||
``` | ||
|
||
# Output | ||
```py | ||
# CSV | ||
df.to_csv('name.csv', encoding='utf-8') | ||
|
||
# Excel | ||
from pandas import ExcelWriter | ||
writer = ExcelWriter('filename.xlsx') | ||
df1.to_excel(writer,'Sheet1') | ||
df2.to_excel(writer,'Sheet2') | ||
writer.save() | ||
|
||
# MySQL | ||
import pymysql | ||
from sqlalchemy import create_engine | ||
e = create_engine('mysql+pymysql://' + | ||
'USER:PASSWORD@HOST/DATABASE') | ||
df.to_sql('TABLE',e, if_exists='replace') | ||
|
||
# Python object | ||
d = df.to_dict() # to dictionary | ||
str = df.to_string() # to string | ||
m = df.as_matrix() # to numpy matrix | ||
``` | ||
|
||
# Import | ||
```py | ||
import numpy as np | ||
import matplotlib.pyplot as plt | ||
import pandas as pd | ||
from pandas import DataFrame, Series | ||
|
||
%matplotlib inline | ||
%load_ext autoreload | ||
%autoreload 2 | ||
|
||
# from __future__ import division | ||
from import_file import * | ||
from helpers.parallel_helper import * | ||
load_libs() | ||
|
||
``` | ||
# Input | ||
```py | ||
df = DataFrame() | ||
|
||
#CSV | ||
df = pd.read_csv('file.csv') | ||
df = pd.read_csv('file.csv', header=0, index_col=0, quotechar='"',sep=':', na_values = ['na', '-', '.', '']) | ||
# specifying "." and "NA" as missing values in the Last Name column and "." as missing values in Pre-Test Score column | ||
df = pd.read_csv('../data/example.csv', na_values={'Last Name': ['.', 'NA'], 'Pre-Test Score': ['.']}) | ||
df = pd.read_csv('../data/example.csv', na_values=sentinels, skiprows=3) # skipping the top 3 rows | ||
df = pd.read_csv('../data/example.csv', thousands=',') # interpreting "," in strings around numbers as thousands separators | ||
|
||
# CSV (Inline) | ||
from io import StringIO | ||
data = """, Animal, Cuteness, Desirable | ||
row-1, dog, 8.7, True | ||
row-2, cat, 9.5, True | ||
row-3, bat, 2.6, False""" | ||
df = pd.read_csv(StringIO(data), | ||
header=0, index_col=0, | ||
skipinitialspace=True) | ||
|
||
# JSON | ||
import json | ||
json_data = open('data-text.json').read() | ||
data = json.loads(json_data) | ||
for item in data: | ||
print item | ||
|
||
# XML | ||
from xml.etree import ElementTree as ET | ||
tree = ET.parse('../../data/chp3/data-text.xml') | ||
root = tree.getroot() | ||
print root | ||
data = root.find('Data') | ||
all_data = [] | ||
for observation in data: | ||
record = {} | ||
for item in observation: | ||
lookup_key = item.attrib.keys()[0] | ||
if lookup_key == 'Numeric': | ||
rec_key = 'NUMERIC' | ||
rec_value = item.attrib['Numeric'] | ||
else: | ||
rec_key = item.attrib[lookup_key] | ||
rec_value = item.attrib['Code'] | ||
record[rec_key] = rec_value | ||
all_data.append(record) | ||
print all_data | ||
|
||
# Excel | ||
workbook = pd.ExcelFile('file.xlsx') | ||
d = {} # start with an empty dictionary | ||
for sheet_name in workbook.sheet_names: # Each Excel sheet in a Python dictionary | ||
df = workbook.parse(sheet_name) | ||
d[sheet_name] = df | ||
|
||
# MySQL | ||
import pymysql | ||
from sqlalchemy import create_engine | ||
engine = create_engine('mysql+pymysql://' | ||
+'USER:PASSWORD@HOST/DATABASE') | ||
df = pd.read_sql_table('table', engine) | ||
(<a href="#top">Back to top</a>) | ||
|
||
|
||
|
||
### Combine DataFrame | ||
Data in Series then combine into a DataFrame | ||
```python | ||
# Example 1 ... | ||
s1 = Series(range(6)) | ||
s2 = s1 * s1 | ||
s2.index = s2.index + 2# misalign indexes | ||
df = pd.concat([s1, s2], axis=1) | ||
# Example 2 ... | ||
s3 = Series({'Tom':1, 'Dick':4, 'Har':9}) | ||
s4 = Series({'Tom':3, 'Dick':2, 'Mar':5}) | ||
df = pd.concat({'A':s3, 'B':s4 }, axis=1) | ||
``` | ||
|
||
# Output | ||
```py | ||
# CSV | ||
df.to_csv('name.csv', encoding='utf-8') | ||
|
||
# Excel | ||
from pandas import ExcelWriter | ||
writer = ExcelWriter('filename.xlsx') | ||
df1.to_excel(writer,'Sheet1') | ||
df2.to_excel(writer,'Sheet2') | ||
writer.save() | ||
|
||
# MySQL | ||
import pymysql | ||
from sqlalchemy import create_engine | ||
e = create_engine('mysql+pymysql://' + | ||
'USER:PASSWORD@HOST/DATABASE') | ||
df.to_sql('TABLE',e, if_exists='replace') | ||
|
||
# Python object | ||
d = df.to_dict() # to dictionary | ||
str = df.to_string() # to string | ||
m = df.as_matrix() # to numpy matrix | ||
``` | ||
# Whole Dataframe | ||
## Content/Structure | ||
Peek at the DataFrame contents/structure | ||
```py | ||
df.info() # index & data types | ||
dfh = df.head(i) # get first i rows | ||
dft = df.tail(i) # get last i rows | ||
dfs = df.describe() # summary stats cols | ||
top_left_corner_df = df.iloc[:4, :4] | ||
data.tail().transpose() | ||
|
||
``` | ||
## Non-indexing attributes | ||
DataFrame non-indexing attributes | ||
```py | ||
dfT = df.T # transpose rows and cols | ||
l = df.axes # list row and col indexes | ||
(r, c) = df.axes # from above | ||
s = df.dtypes # Series column data types | ||
b = df.empty # True for empty DataFrame | ||
i = df.ndim # number of axes (it is 2) | ||
t = df.shape # (row-count, column-count) | ||
i = df.size # row-count * column-count | ||
a = df.values # get a numpy array for df | ||
``` | ||
|
||
## Utilities | ||
DataFrame utility methods | ||
```py | ||
df = df.copy() # copy a DataFrame | ||
df = df.rank() # rank each col (default) | ||
df = df.sort(['sales'], ascending=[False]) | ||
df = df.sort_values(by=col) | ||
df = df.sort_values(by=[col1, col2]) | ||
df = df.sort_index() | ||
df = df.astype(dtype) # type conversion | ||
``` | ||
|
||
## Iterations | ||
DataFrame iteration methods | ||
```py | ||
df.iteritems()# (col-index, Series) pairs | ||
df.iterrows() # (row-index, Series) pairs | ||
# example ... iterating over columns | ||
for (name, series) in df.iteritems(): | ||
print('Col name: ' + str(name)) | ||
print('First value: ' + | ||
str(series.iat[0]) + '\n') | ||
``` | ||
|
||
## Maths | ||
Maths on the whole DataFrame (not a complete list) | ||
```py | ||
df = df.abs() # absolute values | ||
df = df.add(o) # add df, Series or value | ||
s = df.count() # non NA/null values | ||
df = df.cummax() # (cols default axis) | ||
df = df.cummin() # (cols default axis) | ||
df = df.cumsum() # (cols default axis) | ||
df = df.diff() # 1st diff (col def axis) | ||
df = df.div(o) # div by df, Series, value | ||
df = df.dot(o) # matrix dot product | ||
s = df.max() # max of axis (col def) | ||
s = df.mean() # mean (col default axis) | ||
s = df.median()# median (col default) | ||
s = df.min() # min of axis (col def) | ||
df = df.mul(o) # mul by df Series val | ||
s = df.sum() # sum axis (cols default) | ||
df = df.where(df > 0.5, other=np.nan) | ||
``` | ||
Note: The methods that return a series default to working on columns. | ||
|
||
## Select/filter | ||
DataFrame select/filter rows/cols on label values | ||
```py | ||
df = df.filter(items=['a', 'b']) # by col | ||
df = df.filter(items=[5], axis=0) #by row | ||
df = df.filter(like='x') # keep x in col | ||
df = df.filter(regex='x') # regex in col | ||
df = df.select(lambda x: not x%5)#5th rows | ||
|
||
``` |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
angular.md
all lowercase