📊
DataFrame から Redis に登録してみた
Pandas の DataFrame から Redis に保存する方法を調べてみました。
コードはこちら
なお、Redisへの接続については前記事をご覧ください。
登録するDataFrame
下記のデータをRedisに登録してみましょう。
df = pd.DataFrame(
[
["Do", "Deer"],
["Re", "Ray"],
["Mi", "Me"],
["Fa", "Far"],
],
columns=["scale", "example"]
)
文字列データで登録
DataFrame を文字列データとして登録してみます。
for i in range(len(df1)):
key = df1.iloc[i:i+1]["scale"].values[0]
value = df1.iloc[i:i+1]["example"].values[0]
r.set(key, value)
指定した Key の Value を出力してみます。
print(r.get("Do").decode('utf-8'))
Deer
すべての Key と Value を出力させてみます。
for i in range(len(df)):
key = df.iloc[i:i+1]["scale"].values[0]
value = df.iloc[i:i+1]["example"].values[0]
r.set(key, value)
Do Deer
Fa Far
Mi Me
Re Ray
ハッシュデータで登録
DataFrame型を辞書型に変換してハッシュデータとして登録してみます。
pd_dict = dict(zip(df1["scale"], df1['example']))
r.hset("scale", mapping=pd_dict)
指定した Key の Value を出力してみます。
print(r.hget("scale", "Do").decode("utf-8"))
Deer
登録したハッシュデータをすべて出力してみます。
Key のみ、Value のみも可能です。
print(r.hgetall("scale")) # すべて
print(r.hkeys("scale")) # Key のみ
print(r.hvals("scale")) # value のみ
{b'Do': b'Deer', b'Re': b'Ray', b'Mi': b'Me', b'Fa': b'Far'}
[b'Do', b'Re', b'Mi', b'Fa']
[b'Deer', b'Ray', b'Me', b'Far']
binary で出力されるのが気持ち悪い場合は 内包表記を使ってみましょう。
{k.decode("utf-8"):v.decode("utf-8") for k, v in r.hgetall("scale").items()}
{'Do': 'Deer', 'Re': 'Ray', 'Mi': 'Me', 'Fa': 'Far'}
以上になります、最後までお読みいただきありがとうございました。
Discussion