Wednesday, September 6, 2017

Python Simple Heat Map

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

a = np.random.random((5, 4))
df = pd.DataFrame({'a': a[0], 'b': a[1], 'c': a[2], 'd': a[3], 'e': a[4]})
rows = list('abcd')
columns = list(df.columns)

fig = plt.figure(figsize=(10,10), dpi=72) 
ax = fig.add_subplot(111) 
plt.pcolor(df, cmap = plt.cm.Reds) # cmap='hot'

ax.set_xticks(np.arange(0,5)+0.5)
ax.set_yticks(np.arange(0,4)+0.5)
ax.set_yticklabels(rows)
ax.set_xticklabels(columns)
plt.show()

Friday, September 1, 2017

Python pandas iloc vs ix vs loc explanation

"""
loc is label based indexing so basically looking up a value in a row
iloc is integer row based indexing
ix is a general method that first performs label based, if that fails then it falls to integer based
"""
import pandas as pd

df = pd.DataFrame({'A': ['abc', 'xyz', 'pqr'], 'B': [25, 50, 75]}, index = [50, 100, 150])
print(df)

print(df.loc[100, :])  # subset dataframe df if index value = 100 across all columns

print(df.iloc[1, :])   # subset dataframe df for row = 1 across all columns

df = pd.DataFrame({'A': ['abc', 'xyz', 'pqr'], 'B': [25, 50, 75]}, index = ['50', '100', '150'])

# the following yield same result
print(df.ix['50', :])
print(df.ix[1, :])