[Note] les pandas se désempilent

TL;DR

ʻUnstack` était utile pour rendre la série multiIndex plus facile à voir.

grouper par post-traitement

DataFrame des pandas aura l'index MultiIndex si vous faites «group by» dans plusieurs colonnes. Je suis un peu coincé pour le traiter, alors j'écrirai ce que j'ai fait en guise de rappel.

environnement

ici,

Je cours.

Préparation des données

Par exemple, si vous disposez des données suivantes:

import datetime
import random
import pandas as pd

item_list = ['A', 'A', 'A', 'B', 'C','C', 'D']
data_records = []
ts = datetime.datetime.now()
for _ in range(1000):
    ts += datetime.timedelta(seconds=random.randint(200, 3600))
    data_records.append({
        'ts': ts,
        'wday': ts.weekday(),
        'item': random.choice(item_list),
        'qty': random.randint(1, 5)
    })
df = pd.DataFrame(data_records)

Comme df Screenshot from 2020-10-10 00-35-09.png Vous devriez obtenir quelque chose comme ça.

ici,

Imaginez quelque chose comme un journal d'un site EC.

Chose que tu veux faire

Supposons maintenant que vous souhaitiez voir le nombre total d'articles vendus chaque jour. En fait, il est normal de spécifier la période avec «ts», mais à part cela, je pense que vous ferez ce qui suit.

df.groupby(['wday', 'item']).qty.sum()

Ensuite, vous obtiendrez quelque chose comme ceci: Screenshot from 2020-10-10 00-40-42.png Ce n'est pas mal, mais c'est aussi difficile à voir. Ici, si vous faites ʻunstack`,

df.groupby(['wday', 'item']).qty.sum().unstack()

Screenshot from 2020-10-10 00-42-01.png est devenu.

référence

Pour plus de détails, voir Document officiel de Pandas.

Recommended Posts

[Note] les pandas se désempilent
[Astuces] Ma note Pandas
Note
Pandas
Note
Django Note 4
Mémo Pandas
note de pyenv
Notions de base sur les pandas
Notes de pandas
Remarque: Python
Mémorandum de Pandas
Notions de base sur les pandas
Note de Python
Django Note 1
mémorandum pandas
Django Note 3
pandas SettingWithCopyWarning
[Note] RepresenterError
Notez que les spécifications de Pandas loc ont changé.
(Remarque) Statistiques de base sur Python et Pandas sur IBM DSX