An Object of Objects? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: An Object of Objects? (/thread-20094.html) |
An Object of Objects? - cebb - Jul-27-2019 Bare with me, relatively new to playing with python, I'm trying to backwards engineer an object so that I can recreate it slightly differently. I'm trying to understand what creates this structure. The object in the code I'm working with is called s So... if I type print type(s)I get the following results: What is this? it isn't a list... it isn't a tuple... What kind of object returns multiple objects? Added points for how do I make one? I am working with a pandas dataframe iterating through the columns and outputting them to series. I need all of those series as one (nested?) object matching what I'm seeing in s
RE: An Object of Objects? - mcmxl22 - Jul-27-2019 You need to post the code that defines s. It appears s is a class with 14 instances. RE: An Object of Objects? - cebb - Jul-27-2019 s represents self in the apply found here:def background_gradient(s, m, M, cmap='RdBu'): print type(s) if M > -1*m: max = M else: max = -1*m rng = max norm = colors.Normalize(-2*max, 2*max) normed = norm(s.values) c = [colors.rgb2hex(x) for x in plt.cm.get_cmap(cmap)(normed)] return ['background-color: %s' % color for color in c] ... counts_table.style.applymap(color_negative_red)\ .apply(background_gradient, cmap='RdBu', m=df['Dataframe Value'].min().min(), M=df['Dataframe Value'].max().max() )\ .highlight_null(null_color='#F4F6F8')I thought it may be a class of some sort. I've never had to create a class, but when I started playing with it, I couldn't seem to find a way that print class would give the desired outcome; at best I would need to use print class.variable but this leads to having to call each variable independently, where I need to be able to get them all at once. However you say the class has instances, which sounds different than nested objects.
RE: An Object of Objects? - cebb - Jul-28-2019 I forgot my libraries: import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import colors Okay, here's the full code and the context of what I'm trying to do: import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import colors def background_gradient(s, m, M, cmap='RdBu'): if M > -1*m: max = M else: max = -1*m rng = max norm = colors.Normalize(-2*max, 2*max) normed = norm(s.values) c = [colors.rgb2hex(x) for x in plt.cm.get_cmap(cmap)(normed)] return ['background-color: %s' % color for color in c] def color_negative_red(val): color = 'black' if val < 0: color = '#BF0711' elif val >= 0: color = '#212B36' else: color = '#DFE3E8' return 'color: %s' % color df = datasets["Topic Counts and AVG Deviations"] counts_table = pd.pivot_table(df, values='count', index=['ticket about tag'],columns=['datestamp'], aggfunc=np.sum) deviation_table = pd.pivot_table(df, values='AVG Deviation', index=['ticket about tag'],columns=['datestamp'], aggfunc=np.sum) counts_table.style.applymap(color_negative_red)\ .apply(background_gradient, cmap='RdBu', m=df['AVG Deviation'].min().min(), M=df['AVG Deviation'].max().max() )\ .highlight_null(null_color='#F4F6F8')When creating the output heatmap, the color of the table cell is based on the value of the cell. What I wanted to do was to rather than have it based on the 'count' value which is numerically displayed, I wanted to use the 'AVG deviation' value to define the cell coloring. Being that the apply function seems to do something to the 'self' to turn it into a series, I thought that if I could recreate the series from the data in the deviation_table, I could substitute 's' in the background_gradients with my manually created series. However, with the way type(s) returns multiple series objects and the fact that I can't figure out how to do this; I'm open to other suggestions on how to replace those values for the background coloring only, while still displaying the numeric 'count' value in the cell. I hope that makes sense. RE: An Object of Objects? - cebb - Jul-28-2019 I've realized the error in my ways. Ignore all of the above. To give more explanation, I was thinking it was somehow importing all of the class objects in s once, not iterating through. :embarassed: |