我有一个交易列表包含一个标题(H)和细节(D)行。H行和D行必须有一个"发票编号"列匹配,但是如果在同一天有几笔交易,有时会有重复的发票号码。我想做的是在发票号码的末尾添加一个索引,以防止任何重复。下面是我的数据框的可视化表示和我要完成的任务。我在示例中使用字母作为索引来帮助查看差异,但数字索引也可以工作,只是试图消除重复命名。
我不确定我是否必须迭代每个记录,或者是否有一些事情可以作为一个整体来做。
- 原始文件**
| 识别号|类型|发票号码|数量|
| - ------| - ------| - ------| - ------|
| 一|高|博伯12192022|十点整|
| 一|D级|小标题:|十点整|
| 二|高|约耳12182022|三十点整|
| 二|D级|约耳12182022|三十点整|
| 03|高|小标题:|十五点整|
| 03| D级|小标题:|十五点整|
| 四|高|小标题:|七十五分|
| 四|D级|小标题:|二十五点整|
| 四|D级|小标题:|二十五点整|
| 四|D级|小标题:|二十五点整|
- 预期结果**
| 识别号|类型|发票号码|数量|
| - ------| - ------| - ------| - ------|
| 一|高|编号:12192022A|十点整|
| 一|D级|博伯12192022A|十点整|
| 二|高|约耳12182022|三十点整|
| 二|D级|约耳12182022|三十点整|
| 03|高|博伯12192022B|十五点整|
| 03| D级|博伯12192022B|十五点整|
| 四|高|BOB12192022C型|七十五分|
| 四|D级|BOB12192022C型|二十五点整|
| 四|D级|BOB12192022C型|二十五点整|
| 四|D级|BOB12192022C型|二十五点整|
3条答案
按热度按时间wvyml7n51#
你应该加一个列来表示重名,这样就容易多了,否则在计算时会出现追溯的麻烦
如果
dup
值为而不是0
,则可以轻松识别任何invoice
是否重复dy2hfwbg2#
您可以使用
groupby.transform()
进行一些算术运算和整数到字符的转换:结果:
注意,这种方法假设每个事务有2个条目。
oknwwptz3#
更新:
输出:
试试这个:
输出: