import matplotlib.pyplot as plt
weighted_appearances = []
for index, row in df.iterrows():
    weighted_row = [row.ColA] * row.ColA_weights
weighted_appearances += weighted_row
plt.boxplot(weighted_appearances)
plt.show()
Weighted boxplot in Pandas