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

熊猫:匿名化client_id列,不可能回滚

熊猫:匿名化client_id列,不可能回滚

白猪掌柜的 2021-05-30 18:02:03
我有一个带有 client_id 列的数据框,我想匿名化而没有任何回滚的可能性。我想删除client_id,但为链接到客户端的每个原始文件创建相同的值(新列)import pandas as pddf = pd.DataFrame({    'client_id':[111, 222, 111, 222, 333, 222, 111, 333],     'date':['2018-08-20', '2018-08-22', '2018-08-21', '2018-08-21', '2018-08-18', '2018-08-20', '2018-08-18', '2018-08-19'],     'action':['test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8']    })我的数据框:client_id |    date   |  action |    -----------------------------    111 | '2018-08-20'| test1   |     222 | '2018-08-22'| test2   |     111 | '2018-08-21'| test3   |    222 | '2018-08-21'| test4   |    333 | '2018-08-18'| test5   |    222 | '2018-08-20'| test6   |    111 | '2018-08-18'| test7   |     333 | '2018-08-19'| test8   | 预期结果: id |    date   |  action |-----------------------------1   | '2018-08-20'| test1   | 2   | '2018-08-22'| test2   | 1   | '2018-08-21'| test3   |2   | '2018-08-21'| test4   |3   | '2018-08-18'| test5   |2   | '2018-08-20'| test6   |1   | '2018-08-18'| test7   | 3   | '2018-08-19'| test8   | 我尝试使用pandas.core.groupby.DataFrameGroupBy.rank但它确实显示了预期的结果 df['id']= df.groupby("client_id")["date"].rank(ascending=True)
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

pandas.factorize

df.assign(client_id=df.client_id.factorize()[0] + 1)


  action  client_id        date

0  test1          1  2018-08-20

1  test2          2  2018-08-22

2  test3          1  2018-08-21

3  test4          2  2018-08-21

4  test5          3  2018-08-18

5  test6          2  2018-08-20

6  test7          1  2018-08-18

7  test8          3  2018-08-19

numpy.unique

df.assign(client_id=np.unique(df.client_id, return_inverse=True)[1] + 1)


  action  client_id        date

0  test1          1  2018-08-20

1  test2          2  2018-08-22

2  test3          1  2018-08-21

3  test4          2  2018-08-21

4  test5          3  2018-08-18

5  test6          2  2018-08-20

6  test7          1  2018-08-18

7  test8          3  2018-08-19


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

添加回答

举报

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