gpt4 book ai didi

python - 如何计算 Pandas Dataframe 中所有列的哈希值?

转载 作者:行者123 更新时间:2023-12-02 17:00:11 29 4
gpt4 key购买 nike

df.apply 是一种可以将特定函数应用于数据帧中的所有列或所需列的方法。然而,我的目标是计算一个字符串的散列:这个字符串是一行中所有列对应的所有值的串联。我当前的代码返回 NaN

当前代码为:

df["row_hash"] = df["row_hash"].apply(self.hash_string)

函数self.hash_string是:

def hash_string(self, value):
return (sha1(str(value).encode('utf-8')).hexdigest())

是的,合并 Pandas 数据框的所有列会更容易,但是 current answer也帮不了我。

我正在阅读的文件是(前 10 行):

16012,16013,16014,16015,16016,16017,16018,16019,16020,16021,16022
16013,16014,16015,16016,16017,16018,16019,16020,16021,16022,16023
16014,16015,16016,16017,16018,16019,16020,16021,16022,16023,16024
16015,16016,16017,16018,16019,16020,16021,16022,16023,16024,16025
16016,16017,16018,16019,16020,16021,16022,16023,16024,16025,16026

列名是:col_test_1, col_test_2, .... , col_test_11

最佳答案

您可以创建一个新列,它是所有其他列的串联:

df['new'] = df.astype(str).values.sum(axis=1)

然后在上面应用你的哈希函数

df["row_hash"] = df["new"].apply(self.hash_string)

或者这一行应该有效:

df["row_hash"] = df.astype(str).values.sum(axis=1).apply(hash_string)

但是,不确定你是否需要一个单独的函数,所以:

 df["row_hash"] = df.astype(str).values.sum(axis=1).apply(lambda x: sha1(str(x).encode('utf-8')).hexdigest())

关于python - 如何计算 Pandas Dataframe 中所有列的哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54519021/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com