Skip to main content
 首页 » 编程设计

python之pandas 中添加列的一些计算

2025年05月04日23mfrbuaa

我有一个表,其中有一列“Col1”,看起来像这样:

| Col1 |

| 2 |

| 2 |

| 4 |

| 4 |

| 4 |

| 4 |

| 3 |

| 3 |

| 3 |

| 3 |

| 3 |

| 3 |

我需要创建一个新列“Col2”。之后的表格应如下所示:

|列 1 | Col2 |

| 2 | 1 |

| 2 | 2 |

| 4 | 1 |

| 4 | 2 |

| 4 | 3 |

| 4 | 4 |

| 3 | 1 |

| 3 | 2 |

| 3 | 3 |

| 3 | 1 |

| 3 | 2 |

| 3 | 3 |

是否可以让如果我在一行中有相同的值,代码从 1 开始?以 3 为例。

| 3 | 1 |

| 3 | 2 |

| 3 | 3 |

| 3 | 1 |

| 3 | 2 |

| 3 | 3 |

请您参考如下方法:

让我们在没有循环的情况下尝试这个 pandas 解决方案:

df2 = df.assign(Col2=df.groupby('Col1')['Col1'].cumcount().mod(df['Col1']).add(1)) 
print(df2) 

输出:

    Col1  Col2 
0      2     1 
1      2     2 
2      4     1 
3      4     2 
4      4     3 
5      4     4 
6      3     1 
7      3     2 
8      3     3 
9      3     1 
10     3     2 
11     3     3