numpy使用2个集合作为矩阵的行和列



我有3个数组1有国家

['Afghanistan' 'Albania' 'Algeria' 'Andorra' 'Angola' 'Anguilla' .. ]

1有日期

['2020-01-01' '2020-01-02' '2020-01-03' '2020-01-04' '2020-01-05' .. ]

另一个具有类似的数据结构[国家,日期,其他字段]

[['2020-01-01' 'Afghanistan' 'value1']
['2020-01-02' 'Afghanistan' 'value2']
['2020-01-03' 'Afghanistan' 'value3'] ... ]

我需要做一个矩阵以国家/地区为行日期为列和otherField作为每行和每列的对应值,我想知道是否有一种很酷的方法可以使用numpy来实现这一点?

预期输出应该是这样的:

[['' 'Afghanistan' 'Albania' 'Algeria']
['2020-01-01' 'value1' '' '']
['2020-01-02' 'value2' '' '']
['2020-01-03' 'value3' '' '']]

我建议对此任务使用pandas。这对于pivot来说非常简单

假设您的输入列表为l:

import pandas as pd
df = pd.DataFrame(l).pivot(index=0, columns=1, values=2).rename_axis('').reset_index()
out = [list(df.columns)]+df.values.tolist()

输出:

[['', 'Afghanistan', 'Albania'],
['2020-01-01', 'value1', 'value4'],
['2020-01-02', 'value2', 'value5'],
['2020-01-03', 'value3', 'value6']]

使用的输入:

l = [['2020-01-01', 'Afghanistan', 'value1'],
['2020-01-02', 'Afghanistan',  'value2'],
['2020-01-03', 'Afghanistan', 'value3'],
['2020-01-01', 'Albania', 'value4'],
['2020-01-02', 'Albania', 'value5'],
['2020-01-03', 'Albania', 'value6'],]

相关内容

  • 没有找到相关文章

最新更新