在 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])
我有一个如下所示的数据框:
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])