如何在Pandas DataFrame中选取每个单元格内Numpy数组的指定范围
批量提取Numpy数组指定范围数据的方法
下面几种方法均无需编写显式for/while循环,即可高效完成批量提取操作:
方法1:使用apply方法
直接对adc_data1列调用apply,传入lambda函数对每个numpy数组进行切片:
# 示例:提取每个数组的前3个元素(numpy切片为左闭右开,0:3对应索引0、1、2) df['selected data'] = df['adc_data1'].apply(lambda x: x[0:3])
若需提取其他范围,只需修改切片参数即可,比如提取索引2到5的元素就写x[2:6]。
方法2:使用列表推导式
列表推导式是处理这类元素级操作的高效方式,写法简洁:
# 提取每个数组的前3个元素 df['selected data'] = [arr[0:3] for arr in df['adc_data1']]
方法3:使用map方法
map方法同样可对列中每个元素执行切片操作,效果与apply一致:
df['selected data'] = df['adc_data1'].map(lambda x: x[0:3])
执行完成后,DataFrame会新增selected data列,每个单元格对应原数组的指定切片部分,完全匹配你期望的输出结构。
内容的提问来源于stack exchange,提问作者Mahdi
相关产品推荐
相关产品推荐

