使用apply函数对pandas数据框列的每一行进行哈希处理

6
我将尝试使用以下算法对Python 3.6 Pandas数据框列中的每个值进行哈希处理,该列名为ORIG:
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)

我非常期待你的回答!非常感谢!


2
将其定义为一个函数,然后使用以下代码:df['ORIG'].apply(func) - Anton vBR
1个回答

5
你可以创建一个命名函数并应用它-或者应用一个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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接