kurtgn
kurtgn

Reputation: 8722

Pandas aggregation warning with lambdas (FutureWarning: using a dict with renaming is deprecated)

My question is similar to this one, however I do need renaming columns because I aggregate my data using functions:

def series(x):
    return ','.join(str(item) for item in x)

agg = {
    'revenue': ['sum', series],
    'roi': ['sum', series],
}

df.groupby('name').agg(agg)

As a result I have groups of identically named columns:

enter image description here

which become completely indistinguishable after I drop the higher column level:

df.columns = df.columns.droplevel(0)

enter image description here

So, how do I go about keeping unique names for my columns?

Upvotes: 1

Views: 774

Answers (1)

jezrael
jezrael

Reputation: 863281

Use map for flatten columns names:

df.columns = df.columns.map('_'.join)

Upvotes: 3

Related Questions