如何在R语言的DataFrame中保留每行的最后一个反应时(RT)值?
解决方法:提取DataFrame列表列的最后一个元素
没问题,这个需求用Pandas可以轻松实现,我给你两种实用的方法,适配不同场景:
方法1:使用apply + lambda函数
这是最直观的方式,不管列表长度是1还是多个元素,x[-1]都能精准取到最后一个值:
import pandas as pd # 构造你的示例数据 sample_data = { 'RT': [ [0.8414999999999964], [2.1925999999642443], [1.810899999976158], [2.2231999999880827], [1.0113000000119143, 1.3689999999999998], [1.0415000000000134], [1.3503999999761618] ] } df = pd.DataFrame(sample_data) # 处理RT列,保留每个列表的最后一个元素 df['RT'] = df['RT'].apply(lambda x: x[-1])
方法2:使用str[-1](更高效)
如果你的数据集很大,apply的效率可能稍逊一筹,这时可以用Pandas对列表列的原生索引支持,代码更简洁,速度也更快:
df['RT'] = df['RT'].str[-1]
处理后的结果
两种方法执行后,你的DataFrame会变成这样:
RT 0 0.8414999999999964 1 2.1925999999642443 2 1.810899999976158 3 2.2231999999880827 4 1.3689999999999998 5 1.0415000000000134 6 1.3503999999761618
额外优化:保留指定小数位数
如果觉得数值太长不美观,可以再加一步保留小数位数的操作,比如保留4位:
df['RT'] = df['RT'].apply(lambda x: round(x[-1], 4)) # 或者用方法2的写法: df['RT'] = df['RT'].str[-1].round(4)
内容的提问来源于stack exchange,提问作者RH4818
相关产品推荐
相关产品推荐

