为了账号安全,请及时绑定邮箱和手机立即绑定

重新定义销售数据库中的索引列

重新定义销售数据库中的索引列

胡子哥哥 2023-06-27 16:45:11
我一直在清理这个销售数据库,其中的数据是从多个来源收集的,账单编号很混乱,但它们是唯一将多个订单引用到同一张账单的列,但随着时间的推移使用不同的系统会导致账单编号重复。要解决此问题,我需要为日期不同的帐单编号单元格提供一个新编号,例如,如果我有一张帐单编号为 1,日期为 2019 年,而另一张帐单的帐单编号相同,但在 2018 年,我需要给它一个不同的账单号码。df 的样本:       bill_no  item_ser                date                  item size   price0         1       111 2018-12-15 15:09:50          Rockla Salad    R   39.001         1       111 2018-12-15 15:09:50          Rockla Salad    R   39.002         1       112 2018-12-15 15:10:16                   Tea    R    8.003         1       112 2018-12-15 15:10:16                   Tea    R    8.004         1       309 2019-02-21 10:02:24            Eggs Toast    R   35.005         1       309 2019-02-21 10:02:24            Eggs Toast    R   35.006         1         1 2020-07-20 12:38:16      Nody's Sfilatino    R   99.757         1         1 2020-07-20 12:38:16      Nody's Sfilatino    R   99.758         1      2715 2020-05-06 01:13:41  Basilico Buffalo - R    R  110.009         1      2715 2020-05-06 01:13:41  Basilico Buffalo - R    R  110.0010        1      2716 2020-05-06 01:13:41   Timmy's Merguez - R    R  130.0011        1      2716 2020-05-06 01:13:41   Timmy's Merguez - R    R  130.0012        1      2717 2020-05-06 01:13:41            Funghi - R    R  105.0013        1      2717 2020-05-06 01:13:41            Funghi - R    R  105.0014        1      2718 2020-05-06 01:13:41          Extra Cheese    R   20.0015        1      2718 2020-05-06 01:13:41          Extra Cheese    R   20.0016        1         8 2020-07-05 16:27:37        Margherita - R    R   65.0017        1         8 2020-07-05 16:27:37        Margherita - R    R   65.0018        1         9 2020-07-05 16:27:39      Extra Vegetables    R   10.0019        1         9 2020-07-05 16:27:39      Extra Vegetables    R   10.00我尝试过 for 循环,但有 150K 行,这需要很多时间。
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

# Get new_bill_no on the basis of [bill_no, date]

df1 = df[['bill_no', 'date']].drop_duplicates().reset_index()

df1.rename({'index': 'new_bill_no'}, axis=1, inplace=True)


# On Merging you will get new_bill_no in original df

df = df.merge(df1, on=['bill_no', 'date'], how='left'])


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信