【问题标题】:Hash each value in a pandas data frame散列熊猫数据框中的每个值
【发布时间】:2015-05-09 19:04:18
【问题描述】:

在 python 中,我试图找到最快的方法来散列熊猫数据框中的每个值。

我知道任何字符串都可以使用:

hash('a string')

但是如何在 pandas 数据框的每个元素上应用这个函数呢?

这可能是一件很简单的事情,但我刚刚开始使用python。

【问题讨论】:

    标签: python hash pandas


    【解决方案1】:

    hash 函数传递给applystr 列上:

    In [37]:
    
    df = pd.DataFrame({'a':['asds','asdds','asdsadsdas']})
    df
    Out[37]:
                a
    0        asds
    1       asdds
    2  asdsadsdas
    In [39]:
    
    df['hash'] = df['a'].apply(hash)
    df
    Out[39]:
                a                 hash
    0        asds  4065519673257264805
    1       asdds -2144933431774646974
    2  asdsadsdas -3091042543719078458
    

    如果您想对每个元素执行此操作,请致电 applymap:

    In [42]:
    
    df = pd.DataFrame({'a':['asds','asdds','asdsadsdas'],'b':['asewer','werwer','tyutyuty']})
    df
    Out[42]:
                a         b
    0        asds    asewer
    1       asdds    werwer
    2  asdsadsdas  tyutyuty
    In [43]:
    
    df.applymap(hash)
    ​
    Out[43]:
                         a                    b
    0  4065519673257264805  7631381377676870653
    1 -2144933431774646974 -6124472830212927118
    2 -3091042543719078458 -1784823178011532358
    

    【讨论】:

      【解决方案2】:

      Pandas 还有一个函数可以在数组或列上应用哈希函数:

      import pandas as pd
      
      df = pd.DataFrame({'a':['asds','asdds','asdsadsdas']})
      df["hash"] = pd.util.hash_array(df["a"].to_numpy())
      
      

      【讨论】:

        猜你喜欢
        • 2017-05-07
        • 1970-01-01
        • 1970-01-01
        • 2021-12-28
        • 2020-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多