Pandas:如何根据另一列的条目以编程方式设置条目来创建新列?

时间:2018-01-30 00:20:23

标签: python pandas

如果我有如下数据框:

    box boxCode  count
0  x305      K8      3
1  x305      Z8      4
2  x307      Z8      1
3  x403      Z8      6
4  x405      Z8      1
5  x510      Z8      2

如何生成如下所示的新数据框:

    box boxCode  count   boxVariant
0  x305      K8      3    x305-1
1  x305      Z8      4    x305-2
2  x307      Z8      1    x307-1
3  x403      Z8      6    x403-1
4  x405      Z8      1    x405-1
5  x510      Z8      2    x510-1

上面的boxVariant列的条目与box列中的条目基本相同,除了它们现在已经编号了?

1 个答案:

答案 0 :(得分:1)

您可以在groupby上使用box,然后执行cumcount操作。将结果与原始box列连接起来。

In [6]: df.box +'-' + (df.groupby('box').cumcount() + 1).astype(str)
Out[6]:
0    x305-1
1    x305-2
2    x307-1
3    x403-1
4    x405-1
5    x510-1
dtype: object