使用DataFrame的列名将DataFrame转换为多维数组

时间:2019-02-28 13:08:04

标签: python list dataframe multidimensional-array

以下是我要操作的数据框:

df = pd.DataFrame({'A': [1,1,1],
                   'B': [2,2,3],
                   'C': [4,5,4]})

df的每一行都会创建一个唯一密钥。目的是创建以下多维数组列表:

parameter = [[['A', 1],['B', 2], ['C', 4]],
             [['A', 1],['B', 2], ['C', 5]],
             [['A', 1],['B', 3], ['C', 4]]]

问题与this question有关,在该问题上我必须遍历parameter,但不是手动将它们提供给我的功能,而是必须将parameter中的所有df (行)在列表中。

1 个答案:

答案 0 :(得分:1)

您可以使用以下列表推导,该列表推导将每一行的值与数据框的列压缩在一起:

from itertools import repeat

[list(map(list,zip(cols, i))) for cols, i in zip(df.values.tolist(), repeat(df.columns))]

[[[1, 'A'], [2, 'B'], [4, 'C']],
 [[1, 'A'], [2, 'B'], [5, 'C']],
 [[1, 'A'], [3, 'B'], [4, 'C']]]