【问题标题】:Use first column after groupby?在groupby之后使用第一列?
【发布时间】:2022-01-08 12:34:36
【问题描述】:

我有一个 pd 数据框 df,其中有一列 'model' 我用于 groupby:

df = df.groupby(['model']).mean()

现在,我想对生成的 df 执行 lambda 操作:

df['num_topics'] = df['model'].apply(lambda x: x.split('-')[1])

但是,当我运行它时,我收到以下错误:

Traceback (most recent call last):

  File "<ipython-input-898-2f5c4b35d5ba>", line 1, in <module>
    df = full_df.create_effect_num_topics()

  File "<ipython-input-896-6ace6e90c7d0>", line 28, in create_effect_num_topics
    df['num_topics'] = df['model'].apply(lambda x: x.split('-')[1])

  File "C:\Users\20200016\Anaconda3\lib\site-packages\pandas\core\frame.py", line 3458, in __getitem__
    indexer = self.columns.get_loc(key)

  File "C:\Users\20200016\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
    raise KeyError(key) from err

KeyError: 'model'

似乎model 现在是索引,不再是可编辑单元格。我怎样才能让它再次成为一个常规列,以便我可以将它用于 lambda 表达式?

【问题讨论】:

    标签: python pandas lambda pandas-groupby


    【解决方案1】:

    您可以使用它来重置数据框中的索引/级别

        df = df.groupby(['model']).mean().reset_index()
    

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2015-11-04
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 2016-01-21
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多