创建带有矢量条目的数据框

时间:2018-06-19 13:25:23

标签: arrays pandas numpy vector formula

我正在尝试创建一个熊猫数据框,其中单个单元格中的条目是一个numpy数组。例如,给定一系列化学化合物-A2B3C4,D1A2J3等,我为它们每个创建一个numpy数组,以便:

firstium - A2B3C4 - [2,3,4,0,0,0,0.....]

secondium - D1A2J3 - [2,0,0,1,......3....]

我想创建一个只有两列的数据框-'name'和'vec',其中name是化合物名称的字符串,而vec具有公式的数组。假设vec的尺寸为1 x 100。

 Name             vec
firstium          [2,3,4,0,0,0...]
secondium         [2,0,0,1,.....3.]

到目前为止,我一直在做的是创建一个字典式{'name':'vec'}并将其转换为数据框:

 Min_dict={}

 for ....:
    ..
    Min_dict[min_name]=vec

 Min_Dataframe=pd.DataFrame.from_dict(Min_dict,orient='index')

但是,这给了我一个数据框,其中的列与数组的维数一样多,再加上一列。因此,我的数据框的尺寸为数据x101。我需要它为数据x 2

这使对数据进行处理变得很不方便,因为我想将每个数组视为一个信息单元。有人知道我该怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

IIUC:

设置

data = {
    'firstium': np.array([2, 3, 4, 0, 0, 0]),
    'secondium': np.array([2, 0, 0, 1, 0, 3])
}

选项1

pd.Series(data).rename_axis('Name').reset_index(name='Vec')

        Name                 Vec
0   firstium  [2, 3, 4, 0, 0, 0]
1  secondium  [2, 0, 0, 1, 0, 3]

选项2

pd.DataFrame(dict(zip(('Name', 'Vec'), zip(*data.items()))))

        Name                 Vec
0   firstium  [2, 3, 4, 0, 0, 0]
1  secondium  [2, 0, 0, 1, 0, 3]