我是python的新手,我现在可以真正使用你的帮助和指导。我想基于第一和第二列读三米的cols一个CSV文件,并做一些计算即通过动态创建嵌套字典来计算聚合
A spent 100 A spent 2040
A earned 60
B earned 48
B earned 180
A spent 40
.
.
.
其中A花了2040将是除了所有“A”和“花”数额。这不会给我一个错误,但它不是逻辑上是正确:
for row in rows:
cols = row.split(",")
truck = cols[0]
if (truck != 'A' and truck != 'B'):
continue
record = cols[1]
if(record != "earned" and record != "spent"):
continue
amount = int(cols[2])
#print(truck+" "+record+" "+str(amount))
if truck in entries:
#entriesA[truck].update(record)
if record in records:
records[record].append(amount)
else:
records[record] = [amount]
else:
entries[truck] = records
if record in records:
records[record].append(amount)
else:
entries[truck][record] = [amount]
print(entries)
我知道,这部分不正确,因为我会被添加相同的内部词典列表外的字典,但我不知道如何从那里:
entries[truck] = records
if record in records:
records[record].append(amount)
然而,林不知道的语法来动态创建一个新的字典,不会是“记录”
我越来越:
{'B': {'earned': [60, 48], 'spent': [100]}, 'A': {'earned': [60, 48], 'spent': [100]}}
但希望能得到:
{'B': {'earned': [48]}, 'A': {'earned': [60], 'spent': [100]}}
感谢。
这个术语是*“A的总支出是2040”*。是的,熊猫包是这样做的,强烈推荐。 – smci
更好地短语问题*“如何计算聚合?”*比询问实现*“创建嵌套字典”*。阅读有关拆分应用组合范例。 – smci
在你的预期结果中,你为什么期望B的收入是48而不是228?类似的花费,不应该是140吗?你提到了你的问题的总和,但现在看来你只想要第一个? – chthonicdaemon