@@ -2509,6 +2509,40 @@ def sem(self, ddof: int = 1, numeric_only: bool = False):
2509
2509
-------
2510
2510
Series or DataFrame
2511
2511
Standard error of the mean of values within each group.
2512
+
2513
+ Examples
2514
+ --------
2515
+ For SeriesGroupBy:
2516
+
2517
+ >>> lst = ['a', 'a', 'b', 'b']
2518
+ >>> ser = pd.Series([5, 10, 8, 14], index=lst)
2519
+ >>> ser
2520
+ a 5
2521
+ a 10
2522
+ b 8
2523
+ b 14
2524
+ dtype: int64
2525
+ >>> ser.groupby(level=0).sem()
2526
+ a 2.5
2527
+ b 3.0
2528
+ dtype: float64
2529
+
2530
+ For DataFrameGroupBy:
2531
+
2532
+ >>> data = [[1, 12, 11], [1, 15, 2], [2, 5, 8], [2, 6, 12]]
2533
+ >>> df = pd.DataFrame(data, columns=["a", "b", "c"],
2534
+ ... index=["tuna", "salmon", "catfish", "goldfish"])
2535
+ >>> df
2536
+ a b c
2537
+ tuna 1 12 11
2538
+ salmon 1 15 2
2539
+ catfish 2 5 8
2540
+ goldfish 2 6 12
2541
+ >>> df.groupby("a").sem()
2542
+ b c
2543
+ a
2544
+ 1 1.5 4.5
2545
+ 2 0.5 2.0
2512
2546
"""
2513
2547
if numeric_only and self .obj .ndim == 1 and not is_numeric_dtype (self .obj .dtype ):
2514
2548
raise TypeError (
@@ -2524,7 +2558,7 @@ def sem(self, ddof: int = 1, numeric_only: bool = False):
2524
2558
2525
2559
@final
2526
2560
@Substitution (name = "groupby" )
2527
- @Appender ( _common_see_also )
2561
+ @Substitution ( see_also = _common_see_also )
2528
2562
def size (self ) -> DataFrame | Series :
2529
2563
"""
2530
2564
Compute group sizes.
@@ -2534,6 +2568,37 @@ def size(self) -> DataFrame | Series:
2534
2568
DataFrame or Series
2535
2569
Number of rows in each group as a Series if as_index is True
2536
2570
or a DataFrame if as_index is False.
2571
+ %(see_also)s
2572
+ Examples
2573
+ --------
2574
+
2575
+ For SeriesGroupBy:
2576
+
2577
+ >>> lst = ['a', 'a', 'b']
2578
+ >>> ser = pd.Series([1, 2, 3], index=lst)
2579
+ >>> ser
2580
+ a 1
2581
+ a 2
2582
+ b 3
2583
+ dtype: int64
2584
+ >>> ser.groupby(level=0).size()
2585
+ a 2
2586
+ b 1
2587
+ dtype: int64
2588
+
2589
+ >>> data = [[1, 2, 3], [1, 5, 6], [7, 8, 9]]
2590
+ >>> df = pd.DataFrame(data, columns=["a", "b", "c"],
2591
+ ... index=["owl", "toucan", "eagle"])
2592
+ >>> df
2593
+ a b c
2594
+ owl 1 2 3
2595
+ toucan 1 5 6
2596
+ eagle 7 8 9
2597
+ >>> df.groupby("a").size()
2598
+ a
2599
+ 1 2
2600
+ 7 1
2601
+ dtype: int64
2537
2602
"""
2538
2603
result = self .grouper .size ()
2539
2604
@@ -4439,6 +4504,44 @@ def shift(
4439
4504
See Also
4440
4505
--------
4441
4506
Index.shift : Shift values of Index.
4507
+
4508
+ Examples
4509
+ --------
4510
+
4511
+ For SeriesGroupBy:
4512
+
4513
+ >>> lst = ['a', 'a', 'b', 'b']
4514
+ >>> ser = pd.Series([1, 2, 3, 4], index=lst)
4515
+ >>> ser
4516
+ a 1
4517
+ a 2
4518
+ b 3
4519
+ b 4
4520
+ dtype: int64
4521
+ >>> ser.groupby(level=0).shift(1)
4522
+ a NaN
4523
+ a 1.0
4524
+ b NaN
4525
+ b 3.0
4526
+ dtype: float64
4527
+
4528
+ For DataFrameGroupBy:
4529
+
4530
+ >>> data = [[1, 2, 3], [1, 5, 6], [2, 5, 8], [2, 6, 9]]
4531
+ >>> df = pd.DataFrame(data, columns=["a", "b", "c"],
4532
+ ... index=["tuna", "salmon", "catfish", "goldfish"])
4533
+ >>> df
4534
+ a b c
4535
+ tuna 1 2 3
4536
+ salmon 1 5 6
4537
+ catfish 2 5 8
4538
+ goldfish 2 6 9
4539
+ >>> df.groupby("a").shift(1)
4540
+ b c
4541
+ tuna NaN NaN
4542
+ salmon 2.0 3.0
4543
+ catfish NaN NaN
4544
+ goldfish 5.0 8.0
4442
4545
"""
4443
4546
if axis is not lib .no_default :
4444
4547
axis = self .obj ._get_axis_number (axis )
@@ -4519,7 +4622,7 @@ def diff(
4519
4622
4520
4623
@final
4521
4624
@Substitution (name = "groupby" )
4522
- @Appender ( _common_see_also )
4625
+ @Substitution ( see_also = _common_see_also )
4523
4626
def pct_change (
4524
4627
self ,
4525
4628
periods : int = 1 ,
@@ -4535,7 +4638,46 @@ def pct_change(
4535
4638
-------
4536
4639
Series or DataFrame
4537
4640
Percentage changes within each group.
4641
+ %(see_also)s
4642
+ Examples
4643
+ --------
4644
+
4645
+ For SeriesGroupBy:
4646
+
4647
+ >>> lst = ['a', 'a', 'b', 'b']
4648
+ >>> ser = pd.Series([1, 2, 3, 4], index=lst)
4649
+ >>> ser
4650
+ a 1
4651
+ a 2
4652
+ b 3
4653
+ b 4
4654
+ dtype: int64
4655
+ >>> ser.groupby(level=0).pct_change()
4656
+ a NaN
4657
+ a 1.000000
4658
+ b NaN
4659
+ b 0.333333
4660
+ dtype: float64
4661
+
4662
+ For DataFrameGroupBy:
4663
+
4664
+ >>> data = [[1, 2, 3], [1, 5, 6], [2, 5, 8], [2, 6, 9]]
4665
+ >>> df = pd.DataFrame(data, columns=["a", "b", "c"],
4666
+ ... index=["tuna", "salmon", "catfish", "goldfish"])
4667
+ >>> df
4668
+ a b c
4669
+ tuna 1 2 3
4670
+ salmon 1 5 6
4671
+ catfish 2 5 8
4672
+ goldfish 2 6 9
4673
+ >>> df.groupby("a").pct_change()
4674
+ b c
4675
+ tuna NaN NaN
4676
+ salmon 1.5 1.000
4677
+ catfish NaN NaN
4678
+ goldfish 0.2 0.125
4538
4679
"""
4680
+
4539
4681
if axis is not lib .no_default :
4540
4682
axis = self .obj ._get_axis_number (axis )
4541
4683
self ._deprecate_axis (axis , "pct_change" )
0 commit comments