Status
Done
1. Cumulative Calculations
df['series'].cumsum()→ Cumulative sumdf['series'].cumprod()→ Cumulative productdf['series'].cummax()→ Cumulative maximumdf['series'].cummin()→ Cumulative minimum
2. Ranking & Percent Changes
df['series'].rank()→ Rank values (with tie-breaking methods)df['series'].pct_change()→ Percentage change between elementsdf['series'].quantile(q)→ Value at quantile q (0-1)
3. Extreme Value Selection
df['series'].nlargest(n)→ Top n largest valuesdf['series'].nsmallest(n)→ Top n smallest values
4. Window Calculations
df['series'].rolling(window)→ Rolling window calculations (mean, sum, etc.)df['series'].expanding()→ Expanding window calculationsdf['series'].ewm(span)→ Exponentially weighted moving average
Key Notes:
- Cumulative methods (
cum*) are useful for running totals/products rolling()/expanding()/ewm()return objects for further calculationsnlargest()/nsmallest()preserve original indices by default
Sample Dataset
import pandas as pd
data = {
'product': ['Laptop', 'Tablet', 'Phone', 'Monitor', 'Keyboard', 'Mouse', 'Headphones', 'Speaker'],
'price': [1200, 500, 800, 300, 100, 50, 150, 200],
'sales': [15, 22, 18, 10, 30, 40, 25, 12]
}
df = pd.DataFrame(data) product price sales
0 Laptop 1200 15
1 Tablet 500 22
2 Phone 800 18
3 Monitor 300 10
4 Keyboard 100 30
5 Mouse 50 40
6 Headphones 150 25
7 Speaker 200 121. Cumulative Calculations
‣
1.1 Series.cumsum()
‣
1.2 Series.cumprod()
‣
1.3 Series.cummax()
‣
1.4 Series.cummin()
2. Ranking & Percent Changes
‣
2.1 Series.rank()
‣
2.2 Series.pct_change()
‣
2.3 Series.quantile()
3. Extreme Value Selection
‣
3.1 Series.nlargest()
‣
3.2 Series.nsmallest()
4. Window Calculations
‣
4.1 Series.rolling()
‣
4.2 Series.expanding()
‣
4.3 Series.ewm()
Summary Table
Method | Description | Example Use Case |
.cumsum() | Cumulative sum | df['price'].cumsum() |
.cumprod() | Cumulative product | df['sales'].cumprod() |
.cummax() | Running maximum | df['price'].cummax() |
.cummin() | Running minimum | df['price'].cummin() |
.rank() | Rank values | df['price'].rank() |
.pct_change() | Percentage change | df['sales'].pct_change() |
.quantile() | Quantile value | df['price'].quantile(0.5) |
.nlargest() | Top n values | df['price'].nlargest(3) |
.nsmallest() | Bottom n values | df['sales'].nsmallest(2) |
.rolling() | Rolling window | df['price'].rolling(2).mean() |
.expanding() | Expanding window | df['sales'].expanding().sum() |
.ewm() | Exponential moving average | df['price'].ewm(span=3).mean() |
Key Notes
- Cumulative Methods:
- Useful for running totals (
cumsum), tracking highs/lows (cummax/cummin), or growth metrics (cumprod). - Ranking & Percent Changes:
rank()handles ties with methods like'average'(default),'min', or'first'.pct_change()is ideal for time-series growth analysis.- Extreme Values:
nlargest()/nsmallest()return results with original indices (unlikesort_values()).- Window Calculations:
rolling(): Fixed window size (e.g., 7-day rolling average).expanding(): Window grows from start to current row.ewm(): Recent values weighted more heavily (e.g., stock price smoothing).