@@ -4339,3 +4339,49 @@ def test_df_loc_dict() -> None:
4339
4339
4340
4340
df .iloc [0 ] = {"X" : 0 }
4341
4341
check (assert_type (df , pd .DataFrame ), pd .DataFrame )
4342
+
4343
+
4344
+ def test_unstack () -> None :
4345
+ """Test different types of argument for `fill_value` in DataFrame.unstack."""
4346
+ df = pd .DataFrame (
4347
+ [
4348
+ ["a" , "b" , pd .Timestamp (2021 , 3 , 2 )],
4349
+ ["a" , "a" , pd .Timestamp (2023 , 4 , 2 )],
4350
+ ["b" , "b" , pd .Timestamp (2024 , 3 , 2 )],
4351
+ ]
4352
+ ).set_index ([0 , 1 ])
4353
+
4354
+ check (assert_type (df .unstack (0 ), pd .DataFrame | pd .Series ), pd .DataFrame )
4355
+ check (
4356
+ assert_type (
4357
+ df .unstack (1 , fill_value = pd .Timestamp (2023 , 4 , 5 )), pd .DataFrame | pd .Series
4358
+ ),
4359
+ pd .DataFrame ,
4360
+ )
4361
+ check (
4362
+ assert_type (df .unstack (1 , fill_value = 0.0 ), pd .DataFrame | pd .Series ),
4363
+ pd .DataFrame ,
4364
+ )
4365
+ check (
4366
+ assert_type (df .unstack (1 , fill_value = 1 ), pd .DataFrame | pd .Series ), pd .DataFrame
4367
+ )
4368
+ check (
4369
+ assert_type (df .unstack (1 , fill_value = "string" ), pd .DataFrame | pd .Series ),
4370
+ pd .DataFrame ,
4371
+ )
4372
+ check (
4373
+ assert_type (df .unstack (0 , sort = False ), pd .DataFrame | pd .Series ), pd .DataFrame
4374
+ )
4375
+ check (
4376
+ assert_type (
4377
+ df .unstack (1 , fill_value = pd .Timestamp (2023 , 4 , 5 ), sort = True ),
4378
+ pd .DataFrame | pd .Series ,
4379
+ ),
4380
+ pd .DataFrame ,
4381
+ )
4382
+ check (
4383
+ assert_type (
4384
+ df .unstack (1 , fill_value = 0.0 , sort = False ), pd .DataFrame | pd .Series
4385
+ ),
4386
+ pd .DataFrame ,
4387
+ )
0 commit comments