如何在Pandas DataFrame中插入带唯一ID作为name的checkbox列
错误原因
你原写法的问题在于直接将range对象整体转为字符串拼接,会把完整的range(1, x)文本作为固定值填充到整列,而非为每一行分配独立的数字ID,最终触发HTML属性的自动转义得到异常输出。
正确实现代码
使用列表推导式逐行生成对应ID的checkbox HTML:
# 逐行生成带唯一name属性的checkbox代码 checkbox_list = [f'<input name="{idx}" type="checkbox">' for idx in range(1, len(df) + 1)] # 插入到DataFrame第0列 df.insert(0, 'A', checkbox_list)
如果使用不支持f-string的Python版本,可以替换为format写法:
checkbox_list = ['<input name="{}" type="checkbox">'.format(idx) for idx in range(1, len(df) + 1)] df.insert(0, 'A', checkbox_list)
注意事项
如果你后续需要将DataFrame渲染为HTML展示,输出时需要关闭HTML转义,否则checkbox标签会被转义为纯文本。比如使用pandas.DataFrame.to_html方法时,设置escape=False参数即可。
内容的提问来源于stack exchange,提问作者DasBeastx3
相关产品推荐
相关产品推荐

