gpt4 book ai didi

python - pandas data frame的每个元素的值如何存储在redis中

转载 作者:IT王子 更新时间:2023-10-29 06:05:01 24 4
gpt4 key购买 nike

我正在编写一个程序,它将从 csv 文件中读取数据框,然后计算其中一个属性(列)的哈希值并将其作为新属性存储在数据框中。所有这些都工作正常。但是,我想要的是将哈希属性作为我的键存储,并将原始属性作为其值存储在 redis 中。我想对数据框中指定列中的每个元素执行此操作。例如:

这是我的原始数据框:

  customer     value
a 1
b 2
c 3

然后我想计算值属性的散列:

  customer     value      hash
a 1 23344
b 2 34567
c 3 78987

最后,我想将散列属性作为我的键存储在 Redis 中,并将值作为我的值,例如,如果我要求获取

 r.get(23344) 

预期的答案是: '1'

或:

> r.get('78987')
> '3'

下面是我的 python 代码,我到达了 r.set 的部分,我的问题是它将整个属性保存在属性名称下,所以我无法查询单个元素。

import hashlib
import pandas as pd
import numpy as np
import redis

r = redis.Redis(host='localhost', port=6379, db=0)
df= pd.read_csv ('file.csv')
df['hash']=df['value'].apply(hash)

r.set(df['hash'],df['value'])

我为冗长的解释道歉,我希望能得到一些提示,因为我是 pandas 和 redis 的新手

最佳答案

r.set(df['hash'],df['value'])不是你想做的,redis set只接受一个键值对作为参数,比如像 r.set(df[hash][0], df['value'][0])

所以你的代码应该如下所示

for i in range(len(df['value'])):
r.set(df['hash'][i], df['value'][i])

这会奏效。您也可以使用 redis 管道来加速此操作。

pipe = r.pipeline()
for i in range(len(df['value'])):
pipe.set(df['hash'][i], df['value'][i])
results = pipe.execute()

关于python - pandas data frame的每个元素的值如何存储在redis中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49962361/

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