【问题标题】:Hash each row of pandas dataframe column using apply使用 apply 散列 pandas 数据框列的每一行
【发布时间】:2025-12-23 04:55:06
【问题描述】:

我正在尝试在数据帧列 ORIG 上使用以下算法对 python 3.6 熊猫数据帧列的每个值进行散列:

HK_ORIG = base64.b64encode(hashlib.sha1(str(df.ORIG).encode("UTF-8")).digest())

但是,上面提到的代码并没有对列的每个值进行哈希处理,因此,为了对 df-column ORIG 的每个值进行哈希处理,我需要使用 apply 函数。不幸的是,我似乎还不够好,无法完成这项工作。

我想它看起来像下面的代码:

df["HK_ORIG"] = str(df['ORIG']).encode("UTF-8")).apply(hashlib.sha1)

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

【问题讨论】:

  • 将其定义为一个函数,然后:df['ORIG'].apply(func)

标签: python-3.x pandas dataframe hash apply


【解决方案1】:

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

【讨论】: