【发布时间】:2019-11-16 12:34:42
【问题描述】:
我有以下字典
#BEFORE
data={
'cell_1':['13a'], 'jam_1': ['07-08'], 'model_1': ['SUPERSTAR'], 'output_1': ['10'], 'output_jam_1': [''], 'time_1': [''], 'output_ot_1': [''], 'time_ot_1': [''],
'cell_2':['13a'], 'jam_2': ['07-08'], 'model_2': ['SUPERSTAR'], 'output_2': ['20'], 'output_jam_2': [''], 'time_2': [''], 'output_ot_2': [''], 'time_ot_2': [''],
'cell_3':['13c'], 'jam_3': ['07-08'], 'model_3': ['SUPERSTAR'], 'output_3': ['40'], 'output_jam_3': [''], 'time_3': [''], 'output_ot_3': [''], 'time_ot_3': [''],
'cell_4':['13b'], 'jam_4': ['08-09'], 'model_4': ['SUPERSTAR'], 'output_4': ['30'], 'output_jam_4': [''], 'time_4': [''], 'output_ot_4': [''], 'time_ot_4': [''],
'cell_5':['13d'], 'jam_5': ['16-17'], 'model_5': ['SUPERSTAR'], 'output_5': ['40'], 'output_jam_5': [''], 'time_5': [''], 'output_ot_5': [''], 'time_ot_5': [''],
'cell_6':['13d'], 'jam_6': ['16-17'], 'model_6': ['SUPERSTAR'], 'output_6': ['40'], 'output_jam_6': [''], 'time_6': [''], 'output_ot_6': [''], 'time_ot_6': [''],
'cell_7':['13d'], 'jam_7': ['17-18'], 'model_7': ['SUPERSTAR'], 'output_7': ['10'], 'output_jam_7': [''], 'time_7': [''], 'output_ot_7': [''], 'time_ot_7': [''],
'cell_8':['13d'], 'jam_8': ['18-19'], 'model_8': ['SUPERSTAR'], 'output_8': ['60'], 'output_jam_8': [''], 'time_8': [''], 'output_ot_8': [''], 'time_ot_8': [''],
}
I WANT
#AFTER
data={
'cell_1':['13a'], 'jam_1': ['07-08'], 'model_1': ['SUPERSTAR'], 'output_1': ['10'], 'output_jam_1': ['30'], 'time_1': ['0.33'], 'output_ot_1': [''], 'time_ot_1':[''],
'cell_2':['13a'], 'jam_2': ['07-08'], 'model_2': ['SUPERSTAR'], 'output_2': ['20'], 'output_jam_2': ['30'], 'time_2': ['0.67'], 'output_ot_2': [''], 'time_ot_2':[''],
'cell_3':['13c'], 'jam_3': ['07-08'], 'model_3': ['SUPERSTAR'], 'output_3': ['40'], 'output_jam_3': ['40'], 'time_3': ['1'], 'output_ot_3': [''], 'time_ot_3':[''],
'cell_4':['13b'], 'jam_4': ['08-09'], 'model_4': ['SUPERSTAR'], 'output_4': ['30'], 'output_jam_4': ['30'], 'time_4': ['1'], 'output_ot_4': [''], 'time_ot_4':[''],
'cell_5':['13d'], 'jam_5': ['16-17'], 'model_5': ['SUPERSTAR'], 'output_5': ['40'], 'output_jam_5': [''], 'time_5': [''], 'output_ot_5': ['80'], 'time_ot_5':['0.5'],
'cell_6':['13d'], 'jam_6': ['16-17'], 'model_6': ['SUPERSTAR'], 'output_6': ['40'], 'output_jam_6': [''], 'time_6': [''], 'output_ot_6': ['80'], 'time_ot_6':['0.5'],
'cell_7':['13d'], 'jam_7': ['17-18'], 'model_7': ['SUPERSTAR'], 'output_7': ['10'], 'output_jam_7': [''], 'time_7': [''], 'output_ot_7': ['10'], 'time_ot_7':['1'],
'cell_8':['13d'], 'jam_8': ['18-19'], 'model_8': ['SUPERSTAR'], 'output_8': ['60'], 'output_jam_8': [''], 'time_8': [''], 'output_ot_8': ['60'], 'time_ot_8':['1'],
}
如何获得每个字典值 '07-08' '08-09' 和字典列表中的值 13a、13b、13c、13d 的键 'output' 的总和,然后我想要将其插入“output_jam”。
如何获取字典列表中每个字典值“16-17”、“17-18”、“18-19”的键“输出”的总和,然后我想插入到 'output_ot'。
如何使用公式计算“时间”(时间 = 输出/输出堵塞)。
如何使用公式 (time_ot = output /output_ot) 获得计算“time_ot”
您能对此提出建议吗?
【问题讨论】:
-
我建议将数据重组为更健全的数据。如果您熟悉 pandas,可以尝试将其强制转换为数据框
-
您的问题措辞令人困惑。 2号,你不是说output_jam吗?你应该改写第 1 条,它只与堵塞值有关,与单元格值无关正确吗?
-
您应该将其转换为带有字典的列表,然后您可以使用没有数字的变量 -
[{"cell": ... }, {"cell": ... }, ...]- 然后更容易进行计算。 -
以你现有的数据结构,很难做你想做的操作。所以毫不奇怪,你很难做到这一点。我也不确定,如果您可以依赖保存的键的顺序,因为我认为通常的字典在 Python 中不能保证这一点(有一种叫做 OrderedDictionary 的东西)。
标签: python django pandas numpy dictionary