我目前面临一个问题,使我的CVS数据字典。如何将字典作为值插入Python中使用循环的字典
我有3列,我想在文件中使用:
userID, placeID, rating
U1000, 12222, 3
U1000, 13333, 2
U1001, 13333, 4
我想作的结果是这样的:
{'U1000': {'12222': 3, '13333': 2},
'U1001': {'13333': 4}}
也就是说, 我想使我的数据结构看起来像:
sample = {}
sample["U1000"] = {}
sample["U1001"] = {}
sample["U1000"]["12222"] = 3
sample["U1000"]["13333"] = 2
sample["U1001"]["13333"] = 4
但我有很多数据是亲cessed。 我想获得与循环的结果,但我已经尝试过了2小时,失败..
---以下代码可以迷惑你---
我的结果看现在这个样子:
{'U1000': ['12222', 3],
'U1001': ['13333', 4]}
- 该字典的值是一个列表,而一本字典
- 用户“U1000”出现多次,但在我孤单的结果只有一次
我想我的代码有很多错误..如果你不介意的话,请看看:
reader = np.array(pd.read_csv("rating_final.csv"))
included_cols = [0, 1, 2]
sample= {}
target=[]
target1 =[]
for row in reader:
content = list(row[i] for i in included_cols)
target.append(content[0])
target1.append(content[1:3])
sample = dict(zip(target, target1))
我怎么能提高代码? 我已经看过通过计算器,但由于个人缺乏能力, 任何人都可以请帮助我呢?
非常感谢!
这似乎是你想要的字典作为_values_ ,而不是_keys_。也许正确的标题匹配? – ShadowRanger
谢谢你的提醒。已更正标题以及内容! –
另外,你的例子有'{'U1000':{'12222':3},{'1333':2},'U1001':{'13333':4}}',但是这是'U1000'和' U1001',但没有与{{1333':2}'相关联的键(或无值)。你可以有'{'U1000':{'12222':3,'1333':2},'U1001':{'13333':4}}'或'{'U1000':[{'12222': 3},{'1333':2}],'U1001':[{'13333':4}]}',但不是你提供的。 – ShadowRanger