在 pd 数据框单元格内切片数组

Slicing arrays inside pd dataframe cells

我有一个如下所示的数据框:

                                            spectrum  concentration
0  [-0.7966700525900023, 1.051812899165725, -3.22...          97.21
1  [4.2516158928053756, 4.311297642065483, 0.5998...           9.16
2  [2.6277027502790133, 7.421702513385412, -7.280...         184.42
3  [-9.030692948962951, -11.021414125284082, -3.8...          77.61
4  [-7.057630112337506, -4.877704649740394, -10.8...         109.02

并且需要select光谱列中每个数组的范围[70:920]

我尝试了以下方法:

df.spectrum.apply(lambda x: x[70:920])

但是没用。知道怎么做吗?

我通常会为此使用 .map(),例如,

df.spectrum.map(lambda x: x[70:920])

您可以用向量化的方式提取您的范围:

df['spectrum2'] = list(np.array(df['spectrum'].to_numpy().tolist())[:, 70:920])