我有一个看起来像这样的熊猫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])))
但是这导致了一系列的系列,我不知道如何从这里继续。
关于如何改进代码的任何建议?预先感谢!
答案 0 :(得分:1)
我相信您需要:
df['beta_t'].apply(lambda x: x[0][0][0])
或者:
[x[0][0][0] for x in df['beta_t']]