Use rename_axis
for name of column from index and reset_index
:
df = df.value_counts().rename_axis('unique_values').reset_index(name="counts")
print (df)
unique_values counts
0 2 3
1 1 2
Or if need one column DataFrame use Series.to_frame
:
df = df.value_counts().rename_axis('unique_values').to_frame('counts')
print (df)
counts
unique_values
2 3
1 2