You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 16:32:31