flying_fluid_four
flying_fluid_four

Reputation: 764

How to fix NaN record being dropped when using pivot_table method?

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

Answers (1)

Quang Hoang
Quang Hoang

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

Related Questions