Closed
Description
Hi, Would it be possible to implement pivot with a list of index ?
This will throw an error :
df.pivot(index=['time', 'category'], columns='bar', values='baz')
But this does : (Found on Stack Overflow)
def multiindex_pivot(df, index=None, columns=None, values=None):
if index is None:
names = list(df.index.names)
df = df.reset_index()
else:
names = index
list_index = df[names].values
tuples_index = [tuple(i) for i in list_index] # hashable
df = df.assign(tuples_index=tuples_index)
df = df.pivot(index="tuples_index", columns=columns, values=values)
tuples_index = df.index # reduced
index = pd.MultiIndex.from_tuples(tuples_index, names=names)
df.index = index
return df
df.pipe(multiindex_pivot, index=['time', 'category'], columns='bar', values='baz')
I just think it would be nice to have something directly available :)