我正在尝试对数据框列ORIG使用以下算法对python 3.6 pandas数据框列的每个值进行哈希处理:
HK_ORIG = base64.b64encode(hashlib.sha1(str(df.ORIG).encode("UTF-8")).digest())
但是,上面提到的代码不会对列的每个值进行哈希处理,因此,为了对df列ORIG的每个值进行哈希处理,我需要使用apply函数。不幸的是,我似乎做不到这一点。
我想它看起来像下面的代码:
df["HK_ORIG"] = str(df['ORIG']).encode("UTF-8")).apply(hashlib.sha1)
我非常期待您的回答! 提前非常感谢!
答案 0 :(得分:2)
您可以创建一个命名函数并应用它-或应用一个lambda函数。无论哪种情况,都应对数据帧进行尽可能多的处理。
基于lambda的解决方案:
df['ORIG'].astype(str).str.encode('UTF-8')\
.apply(lambda x: base64.b64encode(hashlib.sha1(x).digest()))
命名函数解决方案:
def hashme(x):
return base64.b64encode(hashlib.sha1(x).digest())
df['ORIG'].astype(str).str.encode('UTF-8')\
.apply(hashme)