【发布时间】:2020-08-15 14:08:05
【问题描述】:
我有一个 Pandas 数据框,其中包含两种类型的列,一种包含 numpy 数组,另一种包含浮点数。
例如:
arr1 f1
[0.3, 1.3] 3.5
我需要将数组的值分成行。
如果我只有这两列,我可以像这样轻松拆分数组:
df = pd.DataFrame([[x, j] for i, j in zip(a['arr1'], a['f1']) for x in list(i)], columns=['arr1', 'df1])
结果如下:
arr1 f1
0.3 3.5
1.3 3.5
但是,我可以有任意数量的数组和浮点列,其中同一行中的数组始终具有相同的长度,即:我可以匹配两个数组的所有元素((a1, b1), (a2, b2), ..., (a_n, b_n))。
arr1 f1 arr2 f2
[0.3, 1.3] 3.5 [14.8, 1.2] 1.6
拆分数组后,结果应如下所示:
arr1 f1 arr2 f2
0.3 3.5 14.8 1.6
1.3 3.5 1.2 1.6
很容易知道一列有什么样的数据,因此我可以相应地使用 zip,但无论如何我不知道如何使它适用于任意数量的列。
【问题讨论】:
标签: python arrays pandas numpy dataframe