繁体   English   中英

如何将 GoogleSheets 列转换为 python 键值字典

[英]How do I convert GoogleSheets columns into a python key-value dictionary

我有这个代码

dictionariob = {"paz": 5, "felicidad": 2, "mejor": 3, "alivio": 4, "-": -3}
lista = ["felicidad", "paz", "día", "estoy", "isla", "alivio", "-"]

sum([dictionariob[i] for i in lista if i in dictionariob])

从哪个例子中,我得到结果8

我想在谷歌表格中使用“ dictionariob” ,以便能够轻松添加或删除更多键(名称)/值(勇气)。 但是,一旦我将它切换到与之前共享的代码类似的代码,我就没有得到预期的结果。

所以,这是我的 GSheet: https://docs.google.com/spreadsheets/d/1-odw996EIUB9mo2Ad1fNh0y9QiXv7GU81COMj6g1Z-A/edit#gid=0

我就是这样称呼它的:

sheet_id = "1-odw996EIUB9mo2Ad1fNh0y9QiXv7GU81COMj6g1Z-A"
sheet_name = "a"
dicc = f"https://docs.google.com/spreadsheets/d/1-odw996EIUB9mo2Ad1fNh0y9QiXv7GU81COMj6g1Z-A/gviz/tq?tqx=out:csv&sheet=a"
dicc

import pandas as pd

diccionarioa=pd.read_csv(dicc,error_bad_lines=False, header=0)
diccionarioa.head(5)

这就是我尝试将其转换为字典的方式:

diction = diccionarioa.to_dict()

这是以前工作的相同代码,但将其替换为“ diccionarioa ”,它指的是我的谷歌表格,结果是“ 0 ”..

lista = ["felicidad", "paz", "día", "estoy", "isla", "alivio", "-"]
sum([diction[i] for i in lista if i in diction])

我错过了什么?

谢谢!!

您可以在求和之前将 dataframe 转换为字典:

import pandas as pd

sheet_id = "1-odw996EIUB9mo2Ad1fNh0y9QiXv7GU81COMj6g1Z-A"
sheet_name = "a"
dicc = f"https://docs.google.com/spreadsheets/d/1-odw996EIUB9mo2Ad1fNh0y9QiXv7GU81COMj6g1Z-A/gviz/tq?tqx=out:csv&sheet=a"

# get the dictionary from the dataframe here:
diccionarioa = pd.read_csv(dicc, header=0).set_index("nombre")["valor"].to_dict()

lista = ["felicidad", "paz", "día", "estoy", "isla", "alivio", "-"]
print(sum([diccionarioa[i] for i in lista if i in diccionarioa]))

印刷:

8

使用 dataframe 时,您可以直接通过过滤列对值求和(无需转换为字典):

lista = ["felicidad", "paz", "día", "estoy", "isla", "alivio", "-"]
print(diccionarioa[diccionarioa['nombre'].isin(lista)]['valor'].sum())

8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM