如何在pandas的assign函数中使用带方括号的列名?
解决pandas.assign添加含特殊字符列名的问题
你可以通过两种方式在一行代码里实现添加"Weight [kg]"列:
方式1:字典解包传入参数
利用Python的字典解包语法**,把包含特殊字符列名的字典转换成assign可识别的参数:
DataFrame1 = DataFrame1.assign(**{"Weight [kg]": [1,2,3,4]})
这种方法不受Python标识符规则限制,能支持任意合法字符串作为列名。
方式2:直接传入字典(pandas 1.3.0+适用)
从pandas 1.3.0版本开始,assign支持直接接收字典作为参数,无需解包:
DataFrame1 = DataFrame1.assign({"Weight [kg]": [1,2,3,4]})
原写法失效原因
你之前用DataFrame1.assign(NewColName=[1,2,3,4])是利用Python关键字参数,但Python的标识符(关键字参数名)不允许包含空格、方括号这类特殊字符,因此直接写"Weight [kg]"作为参数名会触发语法错误。而字典的键可以是任意合法字符串,刚好避开这个限制。
内容的提问来源于stack exchange,提问作者jugimanni
相关产品推荐
相关产品推荐

