I have a column, X, where the rows' values are a list of dictionaries. I.e.
row 1 = [{category: **1**, outcome: 1444}, {category: **3**, outcome: 12}, {category: **3**, outcome: 11},... ]
row 2 = [{category: 2, outcome: 1555}, {category: 5, outcome: 42},...]
How can I create columns of each key present in X to then populate with values from the list of dictionaries from each row?
So for row 1, I'd populate a column, 1, with 1444... and column 3, with 12, 11 (2 values separated by a comma).
Here's one way to solve it.
Given:
row 1 = [{category: 1, outcome: 1444}, {category: 3, outcome: 12}, {category: 3, outcome: 11},... ]
row 2 = [{category: 2, outcome: 1555}, {category: 5, outcome: 42},...]
Format the rows so that they look like:
new_row_1 = {
1: [1444, ...],
3: [1444, 12, ...],
...
}
new_row_2 = {
2: [1555, ...],
5: [42, ...],
...
}
Then, you can just loop over each row and call .join()
.
Here is some pseudocode :)
RESULT_GROUPS = {}
FOREACH row_id, row in rows
FOREACH item in row
RESULT_GROUPS[row_id][ item[category] ] = item[value]
FOREACH group_id, group in RESULT_GROUPS[row_id]
RESULT_GROUPS[row_id][ group_id ] = group.join(',')