updated March 30, 2021
Pandas DataFrame useful functions
Let's see how to create Pandas DataFrame from the Python collection data or other data frames.1. Create from column values.
From dict by column:
import pandas as pd
df = pd.DataFrame({'col1': [1,2], 'col2': [3,4]})
df
Out:
col1 col2
0 1 3
1 2 4
2. Create from rows.
From rows list where each row is list of values:
d = pd.DataFrame(
[['a', 'b'], ['c', 'd']],
columns=['col1', 'col2']
)
d
Out:
col1 col2
0 a b
1 c d
3. Combine 2 data frames with same columns into one.
Append rows of 2 data frames:
pd.concat([df, d]) Out: col1 col2 0 1 3 1 2 4 0 a b 1 c d
4. Join data frames like SQL tables.
Merge two data frames by the column values:
products = pd.DataFrame(
[['Pencil', 0.65], ['Notebook', 2.99]],
columns=['Name', 'Price']
)
products
Out:
Name Price
0 Pencil 0.65
1 Notebook 2.99
orders = pd.DataFrame([
['Pencil', 5],
['Pencil', 10],
['Notebook', 2],
['Pencil', 2],
['Notebook', 3]
],
columns=['Name', 'Quantity']
)
orders
Out:
Name Quantity
0 Pencil 5
1 Pencil 10
2 Notebook 2
3 Pencil 2
4 Notebook 3
df = pd.merge(orders, products, on='Name')
df
Out:
Name Quantity Price
0 Pencil 5 0.65
1 Pencil 10 0.65
2 Pencil 2 0.65
3 Notebook 2 2.99
4 Notebook 3 2.99
5. Make aggregation.
Aggregate by Name column calculating the Amount for each name:
df['Amount'] = df['Quantity'] * df['Price'] # add amount column
df.groupby(['Name']).aggregate({'Amount': 'sum'})
Out:
Amount
Name
Notebook 14.95
Pencil 11.05
