在 groupby 之后使用第一列?
Use first column after groupby?
我有一个 pd 数据框 df
,其中有一列 'model'
,我将其用于 groupby:
df = df.groupby(['model']).mean()
现在,我想对生成的结果执行 lambda 运算 df
:
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:\Users200016\Anaconda3\lib\site-packages\pandas\core\frame.py", line 3458, in __getitem__
indexer = self.columns.get_loc(key)
File "C:\Users200016\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 'model'
看来 model
现在是索引,不再是可编辑的单元格了。我怎样才能使它再次成为常规列,以便我可以将它用于 lambda 表达式?
您可以使用它来重置数据帧中的 index/level
df = df.groupby(['model']).mean().reset_index()
我有一个 pd 数据框 df
,其中有一列 'model'
,我将其用于 groupby:
df = df.groupby(['model']).mean()
现在,我想对生成的结果执行 lambda 运算 df
:
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:\Users200016\Anaconda3\lib\site-packages\pandas\core\frame.py", line 3458, in __getitem__
indexer = self.columns.get_loc(key)
File "C:\Users200016\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 'model'
看来 model
现在是索引,不再是可编辑的单元格了。我怎样才能使它再次成为常规列,以便我可以将它用于 lambda 表达式?
您可以使用它来重置数据帧中的 index/level
df = df.groupby(['model']).mean().reset_index()