【问题标题】:AttributeError: 'DataFrameGroupBy' object has no attribute 'colnames'AttributeError:“DataFrameGroupBy”对象没有属性“colnames”
【发布时间】:2021-07-03 12:46:36
【问题描述】:

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

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)

【问题讨论】:

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

标签: python pandas list dataframe group-by


【解决方案1】:

df.groupby(d[i]).colnames[i] 中,colnames[i] 是一个变量。你可能需要做

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

【讨论】:

    猜你喜欢
    • 2018-03-14
    • 2012-12-01
    • 2021-04-19
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多