3
A
回答
3
如果'employee_id'+'customer_id'+'timestamp'
很长,并且您对某些不太可能有碰撞感兴趣,则可以用散列替换它。散列的范围和质量将决定冲突的概率。也许最简单的是使用builtin hash
。假设你的数据帧是df
,列是字符串,这是
(df.employee_id + df.customer_id + df.timestamp).apply(hash)
如果你想要的大小和碰撞概率的更多控制,请this piece on non-crypotgraphic hash functions in Python。
编辑
大厦an answer to this question,你可以建立10个字符的哈希值是这样的:
import hashlib
df['survey_id'] = (df.employee_id + df.customer_id + df.timestamp).apply(
lambda s: hashlib.md5(s).digest().encode('base64')[: 10])
相关问题
- 1. 创建大熊猫基于价值的唯一值的新列
- 2. 唯一值,DF大熊猫
- 3. 在熊猫数据框的每一列中打印唯一值
- 4. 熊猫计数唯一行
- 5. 熊猫:在每一行
- 6. Python的大熊猫:次每个唯一值出现多列
- 7. 熊猫重复行唯一的行
- 8. 熊猫:和值从列唯一值
- 9. 创建一个列在大熊猫DF
- 10. 叠代唯一值的大熊猫
- 11. 熊猫:连接条件的唯一值
- 12. 熊猫:剧情唯一值的曲线
- 13. 为每个行(一到多)与熊猫
- 14. 大熊猫分层索引唯一值
- 15. 熊猫数据框中唯一值
- 16. 大熊猫统计每个索引的唯一值并将唯一行变为总计列
- 17. 大熊猫 - 创建一个缓冲柱
- 18. 熊猫:创建从一个列表
- 19. 熊猫:创建一个元组关键
- 20. 大熊猫输出的每一行
- 21. 对熊猫每一行的操作DataFrame
- 22. 熊猫:删除具有唯一索引值的数据帧行
- 23. 熊猫行下面每一行包含一个'na'
- 24. 两个熊猫MultiIndex帧每行与每一行相乘
- 25. 为两个列表上的每个唯一值创建变量
- 26. 总和行每个唯一的值
- 27. 根据另一列的值在熊猫中创建新列
- 28. 熊猫有每封邮件一行
- 29. 查找交叉口唯一值的另一列熊猫
- 30. 创建一个新的熊猫列与另一列的年份
这是非常简单的。如果我想试试这个库,有没有办法去应用一些hashlib选项? –
@LanceDacey当然,你可以用很多方式来做,包括lambda函数。如果您有一些示例问题,请在此处留言。 –
谢谢,我是加密新手,但我知道我已经看到一些使用A-Z,a-z,例如0-9的哈希。我的目标是将这三列合并到一个新的临时列中,然后将其散列到survey_id列中。如果我们可以让id列成为一个更短的字符串,那就更好了(合并列很长,就像我的ldacey201603081114239999999999)。 因此df ['survey_id'] = df ['combined']上的一些hashlib函数] –