在
python中,我试图找到最快的方法来散列pandas数据框中的每个值.
我知道任何字符串都可以使用:
hash('a string')
但是如何在pandas数据框的每个元素上应用此函数?
这可能是一件非常简单的事情,但我刚刚开始使用python.
解决方法
传递散列函数以应用于str列:
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','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