具有多维数组/列表的简单Python列表交叉表

时间:2018-06-28 20:24:09

标签: python mysql sql

我正在从MySQL提取数据并使用一个简单的Python数组(不要介意使用其他结构;尝试过其他没有运气的方法)。出于本文的目的,我正在对数据进行硬编码:

arr=[]
arr.append(['Date','Org','Pct'])
arr.append(['2018-02','azumi',.2])
arr.append(['2018-03','azumi',.2])
arr.append(['2018-02','zixn',.5])
arr.append(['2018-05','zixn',.6])
print(arr)

Out:[['Date', 'Org', 'Pct'], ['2018-02', 'azarmi', 0.2], ['2018-03','azarmi', 0.2], ['2018-02', 'zixn', 0.5], ['2018-05', 'zixn', 0.6]]

我想将每个唯一的Date与Org作为列放在同一行:

Out:[['Date', 'azarmi pct', 'zixn pct'], ['2018-02', 0.2, 0.5], ['2018-03', 0.2, None], ['2018-04', None, None], ['2018-05', None, 0.6], ['2018-06', 0.2, None]]

我知道这段代码行不通,但是我被困在一种优雅的方式来使用索引分配单个单元格(例如'azarmi pct')。我不想对变量或数组名称进行硬编码。应该根据数据和xTicks中的内容灵活。

arr2=[]
arr2.append(['Date','azarmi pct','zixn pct'])
xTicks=['2018-02','2018-03','2018-04','2018-05','2018-06']
for row in arr:
    for col in xTicks:
        if arr[i][0] == col:
            arr2[col].append([row[1],row[2]])

0 个答案:

没有答案