谁能告诉我为什么排序在这里产生错误?我怀疑它与索引编制有关,但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中是否有任何类似的必要?谢谢
答案 0 :(得分:1)
df.groupby(['ID','Date'],as_index=False)['Text_Data'].transform(lambda x : ' '.join(x))
上面的代码将为您提供Pandas Series
,它仅由一列Text_Data
组成。但是,当您应用sort_values(['ID','Date'])
时,会产生错误,因为此处没有ID
和Date
列。
您可以单独对数据框进行排序,然后将列转换为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