【发布时间】:2019-01-23 00:58:20
【问题描述】:
我想连接 pandas 中的两列。每列包含一个 1x4 元素的浮点列表。我想合并两列,使得输出是一个 1x8 的向量。下面显示了数据帧的 sn-p
ue,bs
"[1.27932459e-01 7.83234197e-02 3.24789420e-02 4.34971932e-01]","[2.97806183e-01 2.32453145e-01 3.10236304e-01 1.69975788e-02]"
"[0.05627587 0.4113416 0.02160842 0.20420576]","[1.64862491e-01 1.35556330e-01 2.59050065e-02 1.42498115e-02]"
要连接两列,我执行以下操作:
df['ue_bs'] = zip(df_join['ue'], df_join['bs'])
有了这个,我得到一个新列“ue_bs”,其中包含df['ue_bs']第一行的以下内容:
(array([1.27932459e-01, 7.83234197e-02, 3.24789420e-02, 4.34971932e-01]),
array([2.97806183e-01, 2.32453145e-01, 3.10236304e-01, 1.69975788e-02]))
但是,它们仍然是两个数组。为了合并它们,我做了如下:
a = df['ue_bs'][0]
np.concatenate((a[0], a[1]), axis=0)
然后,我得到了
array([1.27932459e-01, 7.83234197e-02, 3.24789420e-02, 4.34971932e-01,
2.97806183e-01, 2.32453145e-01, 3.10236304e-01, 1.69975788e-02])
我想知道是否有一种简洁的方法可以在单行代码中执行此操作,而不必遍历 df['ue_bs'] 并执行 np.concatenate()?
【问题讨论】:
标签: python python-2.7 pandas numpy concatenation