如何基于RETURN后的数字自动填充Excel按键日志的Trial列?
用Python自动填充Excel按键日志的Trial列
核心思路
遍历Input列,当遇到RETURN记录时,提取下一行内容开头的数字作为当前Trial值,后续所有行直到下一个RETURN出现前,都使用这个Trial值填充。
所需工具
使用pandas处理表格数据,openpyxl读取/写入xlsx格式文件,先安装依赖:
pip install pandas openpyxl
实现代码
import pandas as pd import re # 读取Excel文件,替换成你的文件路径 df = pd.read_excel("按键日志.xlsx", engine="openpyxl") # 初始化Trial列,默认设为NaN df["Trial"] = pd.NA current_trial = None # 遍历每一行索引 for idx in df.index: # 检查当前行是否是RETURN if df.loc[idx, "Input"] == "RETURN": # 确保下一行存在 if idx + 1 < len(df): next_row_content = str(df.loc[idx + 1, "Input"]) # 匹配行首的数字(支持整数,比如10、20这类) match = re.match(r"^(\d+)\.", next_row_content) if match: current_trial = int(match.group(1)) # 如果当前有有效Trial值,填充到当前行 if current_trial is not None: df.loc[idx, "Trial"] = current_trial # 将结果保存到新文件,避免覆盖原数据 df.to_excel("带Trial标注的按键日志.xlsx", index=False, engine="openpyxl")
注意事项
- 正则表达式
^(\d+)\.匹配的是行首数字加英文句号的格式(比如10. red),如果你的行首格式不同(比如10 red),可以把正则改成^(\d+) - 如果
RETURN之后的行没有符合格式的数字,这段代码会保持之前的Trial值,你可以根据需要加判断重置为NA - 准确率取决于日志格式的一致性,格式越规整,结果越准确
内容的提问来源于stack exchange,提问作者Hui.S
相关产品推荐
相关产品推荐

