我问过similar question在 R 中关于为每一行数据创建哈希值。我知道我可以使用类似 hashlib.md5(b'Hello World').hexdigest()
的东西来对字符串进行哈希处理,但是数据帧中的一行呢?
更新01
我的代码起草如下:
for index, row in course_staff_df.iterrows():
temp_df.loc[index,'hash'] = hashlib.md5(str(row[['cola','colb']].values)).hexdigest()
对我来说似乎不是很 pythonic,有更好的解决方案吗?
最佳答案
或者简单地说:
df.apply(lambda x: hash(tuple(x)), axis = 1)
举个例子:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(3,5))
print df
df.apply(lambda x: hash(tuple(x)), axis = 1)
0 1 2 3 4
0 0.728046 0.542013 0.672425 0.374253 0.718211
1 0.875581 0.512513 0.826147 0.748880 0.835621
2 0.451142 0.178005 0.002384 0.060760 0.098650
0 5024405147753823273
1 -798936807792898628
2 -8745618293760919309
关于python - 在 python pandas 的数据框中使用选定的列为每一行数据创建哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25757042/