Python 属性错误:';DataFrameGroupBy';对象没有属性';colnames';

Python 属性错误:';DataFrameGroupBy';对象没有属性';colnames';,python,pandas,list,dataframe,group-by,Python,Pandas,List,Dataframe,Group By,我有一个列名称列表,如下所示: colnames = ['split1', 'split2', 'split3', 'split4', 'split5', 'split6', 'split7'] for i in range(0,x+2): df[d[i+1]] = df.groupby(d[i]).colnames[i].transform(lambda x : x.factorize()[0]+1) 我在一行代码中使用了这一点,我在其中迭代列表项,如下所示: colnames =

我有一个列名称列表,如下所示:

colnames = ['split1', 'split2', 'split3', 'split4', 'split5', 'split6', 'split7']
for i in range(0,x+2):
    df[d[i+1]] = df.groupby(d[i]).colnames[i].transform(lambda x : x.factorize()[0]+1)
我在一行代码中使用了这一点,我在其中迭代列表项,如下所示:

colnames = ['split1', 'split2', 'split3', 'split4', 'split5', 'split6', 'split7']
for i in range(0,x+2):
    df[d[i+1]] = df.groupby(d[i]).colnames[i].transform(lambda x : x.factorize()[0]+1)
这给了我一个属性错误:

AttributeError: 'DataFrameGroupBy' object has no attribute 'columns'
但是,如果我单独为代码提供colname项,它就可以正常工作:

df['dot2'] = df.groupby('dot1').split1.transform(lambda x : x.factorize()[0]+1)
df.groupby(d[i]).colnames[i]
中,
colnames[i]
是一个变量。你可能需要做些什么

df.groupby(d[i])[f'{colnames[i]}']

df.groupby(d[i])
中什么是
d
?d是另一个列列表:d=['dot1','dot2','dot3','dot4','dot5','dot6','dot7']