是否可以在 NamedAgg 表达式中使用带空格的列名?

div*_*obi 4 pandas pandas-groupby

使用聚合函数命名聚合列时是否可以创建包含空格和特殊字符的名称pandas.NamedAgg?典型的语法是:

pvt = (df.groupby(by=[....])
         .agg(value=pd.NamedAgg(column='col', aggfunc='count'))
      )      
Run Code Online (Sandbox Code Playgroud)

但是有没有办法创建一个不是有效的 python 变量名(如value本例所示)的列名,而是类似的名称'my new column name'

我现在能想到的唯一解决方案是value事后重命名:

.rename(columns={'value': 'my new column name'})
Run Code Online (Sandbox Code Playgroud)

Cod*_*ent 13

如果你的列名没有成为有效的Python变量名,你可以使用字典解包:

df.groupby(...).agg(**{
    'My New Column Name': ('col_name', 'mean'),
    'Column 42@#$': ('col_name', 'max')
})
Run Code Online (Sandbox Code Playgroud)