【问题标题】:Sorting by columns after grouping generating error分组生成错误后按列排序
【发布时间】:2019-01-01 17:50:25
【问题描述】:

谁能告诉我为什么排序会在这里产生错误?我怀疑它与索引有关,但 reset_index 没有解决问题

df['s'] = df.groupby(['ID','Date'],as_index=False)['Text_Data']\
                   .transform(lambda x :  ' '.join(x))\
                   .sort_values(['ID','Date']) . 

KeyError: ('ID', 'Date')

我试图做的是对数据框进行排序,而不考虑分组。在 R 中,您首先会做 ungroup() 不确定在 Pyhton 中是否需要任何类似的东西?谢谢

【问题讨论】:

  • 错误是什么?
  • @user4394147 请提供数据。

标签: python pandas


【解决方案1】:
df.groupby(['ID','Date'],as_index=False)['Text_Data'].transform(lambda x :  ' '.join(x))

上面的代码会给你一个Pandas Series,它只包含一列Text_Data。但是当你应用sort_values(['ID','Date'])时,这会产生一个错误,因为这里没有IDDate列。

您可以单独对数据框进行排序并将列转换为系列。然后,从数据框中删除该列并像这样将转换后的列附加到它,

df = df.sort_values(['ID','Date'])
df['s'] = df.groupby(['ID','Date'],as_index=False)['Text_Data'].transform(lambda x :  ' '.join(x))
del df['Text_Data']
df['Text_Data] = df['s'].values

【讨论】:

  • @user4394147 让我知道这是否适合您。如果出现问题,请告诉我,我会尽快解决!
猜你喜欢
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 2013-06-28
  • 2011-04-19
  • 2013-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多