I used the command to group. Now I want to 'ungroup' and get back the original df
example
original_df = pd.DataFrame({
"id": ["abc", "abc","abc","def"],
"col2": ["adam","eve","john","john"]
})
original_df.groupby('id').agg(
unique_count_col2=('col2', 'nunique'),
unique_values_col2=('col2', 'unique')
).reset_index()
desired_df = pd.DataFrame({
"id": ["abc", "abc","abc","def"],
"col2": ["adam","eve","john","john"]
})
You can .explode()
the unique_values_col2
column (but if you had duplicate col2
values under id
they are lost):
out = (
df[["id", "unique_values_col2"]]
.rename(columns={"unique_values_col2": "col2"})
.explode("col2")
)
print(out)
Prints:
id col2
0 abc adam
0 abc eve
0 abc john
1 def john