【发布时间】:2021-10-18 20:54:59
【问题描述】:
colA 是我目前拥有的。
但是,我正在尝试生成colB。
我希望 colB 包含每个值的数字 001。但是,如果关联的 colA 值在该列中存在两次,我希望 colB 数字然后是 002,依此类推。
希望下面的示例可以根据colA 值更好地了解我正在寻找的内容。我一直在努力为此编写任何真正的代码。
编辑:努力用文字解释这一点,所以如果你能想到更好的解释方法,请随时更新我的问题。
colA colB
BJ02 001
BJ02 002
CJ02 001
CJ03 001
CJ02 002
DJ01 001
DJ02 001
DJ07 001
DJ07 002
DJ07 003
【问题讨论】:
-
您可以使用
df.groupby('colA').cumcount()+1获得大部分内容,您是否需要与您描述的 0 完全相同的格式? -
谢谢!这可能会奏效。理想情况下是的,我希望它返回 001 或 010 等,而不仅仅是 1 或 10(如果可能的话)。
-
对于字符串格式,您可以跟进
colB.astype(str).str.zfill(3)。 -
完美。谢谢@hilberts_drinking_problem 和本。这两者结合给了我我所追求的东西。