Python 将同一密钥的行组合到单个数组中
我有一个熊猫数据框,如下所示:Python 将同一密钥的行组合到单个数组中,python,pandas,Python,Pandas,我有一个熊猫数据框,如下所示: error 0: [[0.1,0.4,-0.3]] 1: [[-0.6,-0.3,0.2]] . . . 99: [[0.4,-0.7,0.1]] 我希望将所有值组合到一个数组中,如下所示: [0.1,0.4,-0.3,-0.6,-0.3,0.2,...,0.4,-0.7,0.1] 有没有一种快速的方法可以使用pandas来实现这一点,或者我需要迭代数据并“手动”构建数组? 在这种情况下,数据顺序并不重要 在更一般的情况下,如何组合大小不
error
0: [[0.1,0.4,-0.3]]
1: [[-0.6,-0.3,0.2]]
.
.
.
99: [[0.4,-0.7,0.1]]
我希望将所有值组合到一个数组中,如下所示:
[0.1,0.4,-0.3,-0.6,-0.3,0.2,...,0.4,-0.7,0.1]
有没有一种快速的方法可以使用pandas来实现这一点,或者我需要迭代数据并“手动”构建数组?
在这种情况下,数据顺序并不重要
在更一般的情况下,如何组合大小不同的数组(例如,第0行包含3个元素的数组,第1行包含6个元素的数组,等等?使用:
使用str[0]
的更多通用解决方案,用于选择嵌套列表
:
print (df)
error
0 [[0.1,0.4,-0.3]]
1 [[-0.6,-0.3]]
99 [[0.4,-0.7,0.1]]
from itertools import chain
L = list(chain.from_iterable(df['error'].str[0]))
print (L)
[0.1, 0.4, -0.3, -0.6, -0.3, 0.4, -0.7, 0.1]
L = np.concatenate(df['error'].str[0].values).tolist()
print (L)
[0.1, 0.4, -0.3, -0.6, -0.3, 0.4, -0.7, 0.1]
将返回:
数组([0.1,0.4,-0.3,-0.6,-0.3,0.2])
如果要按列附加元素
df.values.flatten(order='F')
然后它将返回:
数组([0.1,-0.6,0.4,-0.3,-0.3,0.2])在询问之前,您是否尝试过任何方法?如果行的形状为(N,)则此方法有效,但如果行的形状为(N,1),则需要jezrael的解决方案
df=pd.DataFrame([[0.1,0.4,-0.3],[-0.6,-0.3,0.2]])
df.values.flatten()
df.values.flatten(order='F')