熊猫访问一系列矩阵的第一项

时间:2019-05-06 05:07:43

标签: python-3.x pandas matrix

我有一个看起来像这样的熊猫df:

    beta
0   matrix([[1], [2], [3]])
1   matrix([[2], [3], [4]])
2   matrix([[0], [0], [0]])
:
999 matrix([[2], [1], [3]])

我想访问df['beta']的第一个条目,理想情况下是一个看起来像这样的列表或np数组: [1, 2, 0, ..., 2]

到目前为止我尝试过的:

将系列转换为列表列表

b_t = list(df['beta_t'].apply(lambda x: x.flatten().tolist()[0]))
b_t = [row[0] for row in b_t]

这有效,但是在大型数据集中需要一段时间。

我也尝试过:

b_t = list(df['beta_t'].apply(lambda x: np.array(x.flatten()[0])))

但是这导致了一系列的系列,我不知道如何从这里继续。

关于如何改进代码的任何建议?预先感谢!

1 个答案:

答案 0 :(得分:1)

我相信您需要:

df['beta_t'].apply(lambda x: x[0][0][0])

或者:

[x[0][0][0] for x in df['beta_t']]