分组后生成错误按列排序

时间:2019-01-01 17:50:25

标签: python pandas

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

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

KeyError :(“ ID”,“日期”)

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

1 个答案:

答案 0 :(得分:1)

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

上面的代码将为您提供Pandas Series,它仅由一列Text_Data组成。但是,当您应用sort_values(['ID','Date'])时,会产生错误,因为此处没有IDDate列。

您可以单独对数据框进行排序,然后将列转换为Series。然后,从数据框中删除该列,然后将转换后的列添加到该列,

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