“Compléter les dates pandas par groupe par” Réponses codées

Compléter les dates pandas par groupe par

s = (pd.MultiIndex.from_tuples([[x, d]
      for x, y in df.groupby("Id")["Dt"]
      for d in pd.date_range(min(y), max(df["Dt"]), freq="MS")], names=["Id", "Dt"]))

print (df.set_index(["Id", "Dt"]).reindex(s, fill_value=0).reset_index())
Robson Melchiades

Compléter les dates pandas par groupe par

# Get Min Per Group
dates = mydf.groupby('Id')['Dt'].min().to_frame(name='min')
# Get max from Frame
dates['max'] = mydf['Dt'].max()

# Create MultiIndex with separate Date ranges per Group
midx = pd.MultiIndex.from_frame(
    dates.apply(
        lambda x: pd.date_range(x['min'], x['max'], freq='MS'), axis=1
    ).explode().reset_index(name='Dt')[['Dt', 'Id']]
)

# Reindex
mydf = (
    mydf.set_index(['Dt', 'Id'])
        .reindex(midx, fill_value=0)
        .reset_index()
)
Robson Melchiades

Réponses similaires à “Compléter les dates pandas par groupe par”

Questions similaires à “Compléter les dates pandas par groupe par”

Plus de réponses similaires à “Compléter les dates pandas par groupe par” dans Python

Parcourir les réponses de code populaires par langue

Parcourir d'autres langages de code