Reputation: 764
I have a dataframe df as :
var1 var2 var3 var4
a 1 1/1/2020 3
a 2 2/1/2020 2
a 3 3/1/2020 NaN
When I try to pivot it as
pivot = (df.pivot_table(index=['var2','var3'], columns=['var1'], values='var4')
.reset_index()
.rename_axis(None, axis=1))
It drops the record with NaN in the var4 to give result as:
var2 var3 a
1 1/1/2020 3
2 2/1/2020 2
What I am trying to get is:
var2 var3 a
1 1/1/2020 3
2 2/1/2020 2
3 3/1/2020 NaN
Any ideas why its dropping the NaN record during pivot and how to fix that behavior?
Upvotes: 0
Views: 23
Reputation: 150745
Try using set_index().unstack()
:
df.set_index(['var2','var3','var1'])['var4'].unstack()
Output:
var1 a
var2 var3
1 1/1/2020 3.0
2 2/1/2020 2.0
3 3/1/2020 NaN
Upvotes: 1