我有一个如下所示的数据表:
F M
f1 m1
f1 m2
f1 m3
f2 m1
f3 m1
f3 m2
我需要添加由str
类型的对象组成的第三列。所以表格看起来应该是这样的:
F M B
f1 m1 'b1'
f1 m2 'b2'
f1 m3 'b3'
f2 m1 'b1'
f3 m1 'b1'
f3 m2 'b2'
在熊猫中这样做的正确方法是什么?有类似的问题,但我找不到类似的任务,我无法弄清楚如何构建这个B列。
修改:
抱歉不够清楚。表中的所有值(f {i}和m {i})都是一些字符串。
答案 0 :(得分:1)
尝试groupby.cumcount
基本上为每个 F 提供行号,然后您可以将行号与b
之类的字母连接起来:
df['B'] = 'b'+df.groupby('F').cumcount().add(1).astype(str)
df
# F M B
#0 f1 m1 b1
#1 f1 m2 b2
#2 f1 m3 b3
#3 f2 m1 b1
#4 f3 m1 b1
#5 f3 m2 b2