如何用.column_name方式获取Pandas带空格列的len()?
回答
很遗憾地告诉你,完全没办法通过 .column_name 的点号语法来访问带空格的列名——这是Python本身的标识符规则决定的:变量/属性名里不能包含空格,所以当你写 df.Site In 时,Python会把它当成 df.Site 和 In 两个独立的标识符,直接抛出语法错误;而你尝试的SiteIn/Site_In这类命名,和原DataFrame里的Site In列名不匹配,自然会报属性不存在的错误。
不过别担心,有两种简单的方法可以解决你的需求:
1. 方括号索引(推荐,无需修改原数据)
这是处理带空格列名最直接的方式,直接用字符串形式的列名放在方括号里:
len(df['Site In']) len(df['Site Out'])
这种方法适用于任何列名,哪怕是包含特殊字符、空格或者和Python关键字重名的列。
2. 重命名列名(适合长期使用)
如果你确实习惯用点号语法,可以先把带空格的列名改成符合标识符规则的名字,比如把空格换成下划线或者直接去掉:
# 重命名列,把空格换成下划线 df.rename(columns={'Site In': 'Site_In', 'Site Out': 'Site_Out'}, inplace=True) # 之后就可以用点号访问了 len(df.Site_In) len(df.Site_Out)
注意:inplace=True会直接修改原DataFrame,如果不想修改原数据,可以去掉这个参数,把结果赋值给新的DataFrame。
内容的提问来源于stack exchange,提问作者oakca
相关产品推荐
相关产品推荐

