Quick Start with Pandas
1. Series
# Series: one-dimensional array similar to a list
import numpy as np
import pandas as pd
values_array = np.array([10, 20, 30])
labels = ['x', 'y', 'z']
series_data = pd.Series(values_array, index=labels)
print(series_data)
print('First element of the series:')
print(series_data[0])
print('Element with label \'z\':')
print(series_data['z'])
2. DataFrame
# DataFrame: two-dimensional array with customizable rows and columns
values_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
row_identifiers = ['row_a', 'row_b', 'row_c']
column_names = ['col_alpha', 'col_beta', 'col_gamma']
data_frame = pd.DataFrame(data=values_array, index=row_identifiers, columns=column_names)
print(data_frame)
print('Access data from col_beta:')
print(data_frame['col_beta'])
Data Import
1. CSV
# CSV characteristics: comma-separated values, header row with field attributes
from csv import reader
import numpy as np
file_name = 'pima.csv'
with open(file_name, 'rt') as raw_data:
csv_reader = reader(raw_data, delimiter=',')
data_list = list(csv_reader)
numeric_data = np.array(data_list).astype('float')
print(numeric_data.shape)
2. Pandas Import
# Pandas import
from pandas import read_csv
file_name = 'pima.csv'
column_labels = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataset = read_csv(file_name, names=column_labels)
print(dataset.shape)
3. Numpy Import
# Numpy import
from numpy import loadtxt
file_name = 'pima.csv'
with open(file_name, 'rt') as raw_data:
numeric_dataset = loadtxt(raw_data, delimiter=',')
print(numeric_dataset.shape)
Data Understanding
1. View Data
from pandas import read_csv
file_name = 'pima.csv'
column_labels = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataset = read_csv(file_name, names=column_labels)
first_rows = dataset.head(10)
# View data
print(first_rows)
2. Data Dimensions
# Data dimensions
print(dataset.shape)
3. Data Attributes and Types
# Data attributes and types
print(dataset.dtypes)
4. Descriptive Statistics
# Descriptive statistics
print(dataset.describe())
5. Data Group Distribution (Sutiable for Classification Algorithms)
# Data distribution
print(dataset.groupby('class').size())
6. Data Attribute Correlation
# Data correlation: Pearson correlation coefficient
print(dataset.corr(method='pearson'))
7. Data Distribution Enalysis
# Data distribution analysis: Gaussian distribution
print(dataset.skew())
Data Visualization
1. Single Charts
(1) Histogram
# Histogram
from pandas import read_csv
import matplotlib.pyplot as plt
file_name = 'pima.csv'
column_labels = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataset = read_csv(file_name, names=column_labels)
dataset.hist()
plt.show()
(2) Density Plot
# Density plot
from pandas import read_csv
import matplotlib.pyplot as plt
file_name = 'pima.csv'
column_labels = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataset = read_csv(file_name, names=column_labels)
dataset.plot(kind='density', subplots=True, layout=(3,3), sharex=False)
plt.show()
(3) Box Plot
# Box plot
from pandas import read_csv
import matplotlib.pyplot as plt
file_name = 'pima.csv'
column_labels = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataset = read_csv(file_name, names=column_labels)
dataset.plot(kind='box', subplots=True, layout=(3,3), sharex=False)
plt.show()
2. Multiple Charts
(1) Correlation Matrix Plot
# Correlation matrix plot
from pandas import read_csv
import numpy as np
import matplotlib.pyplot as plt
file_name = 'pima.csv'
column_labels = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataset = read_csv(file_name, names=column_labels)
correlations = dataset.corr()
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(correlations, vmin=-1, vmax=1)
fig.colorbar(cax)
ticks = np.arange(0, 9, 1)
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.set_xticklabels(column_labels)
ax.set_yticklabels(column_labels)
plt.show()
(2) Scater Matrix Plot
# Scatter matrix plot
from pandas import read_csv
from pandas.plotting import scatter_matrix
import numpy as np
import matplotlib.pyplot as plt
file_name = 'pima.csv'
column_labels = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataset = read_csv(file_name, names=column_labels)
scatter_matrix(dataset)
plt.show()