Python 熊猫:如何创建一个新列,并根据另一列的条目以编程方式设置条目?
如果我有如下数据帧:Python 熊猫:如何创建一个新列,并根据另一列的条目以编程方式设置条目?,python,pandas,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
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列中的条目基本相同,只是它们现在已编号?您可以在box上使用groupby,然后使用cumcount操作。将结果与原始框列连接
从R的角度来看,它可能是这样的:librarydplyr,数据帧%group\U bybox%>%mutaterows=row\U number%>%ungroup%>%uniteboxVariant,box,rows,sep=-,remove=FALSE。只需将代码迁移到Python,一切都很好。
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