Welcher Bundesstaat ist am marktfreundlichsten?
Während du die Daten zu Wochenmärkten erkundest, fragst du dich, welche Muster sichtbar werden, wenn du auf Ebene der Bundesstaaten aggregierst. Sind manche Staaten marktfreundlicher als andere? Um das zu untersuchen, gruppierst du deine Daten nach Bundesstaat und berechnest die logarithmierte Anzahl der Märkte (log_markets) und die Bevölkerungszahl der Staaten (log_pop).
markets_and_pop = (markets
.groupby('state', as_index = False)
.agg({
'name': lambda d: log(len(d)),
'state_pop': lambda d: log(d.iloc[0]) })
.rename(columns = {
'name': 'log_markets',
'state_pop': 'log_pop' }))
Zur Visualisierung verwendest du ein Regressionsdiagramm, um eine Idee von der „normalen“ Beziehung zwischen Markt- und Bevölkerungszahlen zu bekommen, und ein Text-Scatter, um interessante Ausreißer schnell zu erkennen.
Diese Übung ist Teil des Kurses
<Kurs>So verbesserst du deine Datenvisualisierungen in Python</Kurs>Übungsanweisungen
- Iteriere über die Zeilen des DataFrames
markets_and_pop. - Platziere Anmerkungen neben den Punkten im Streudiagramm.
- Reduziere die Schriftgröße der Anmerkungen auf
10Punkt.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
g = sns.regplot(
"log_markets", "log_pop",
ci = False,
# Shrink scatter plot points
scatter_kws = {'s':2},
data = markets_and_pop)
# Iterate over the rows of the data
for _, row in markets_and_pop.____():
state, _, _, log_markets, log_pop = row
# Place annotation and reduce size for clarity
g.annotate(state, (____,____), ____ = ____)
plt.show()