我有一个Pandas DataFrame,我想根据分组在列[‘ID’]中的原始DataFrame的[‘val’]列中的平均值创建两个新的DataFrame.请参见下面的内容:
dict_ = {'ID': ['abc', 'def', 'def', 'abc'], 'Val' : [1, 57, 65, 9]}
df = pd.DataFrame.from_dict(dict_)
df_avg = df.groupby('ID', as_index=False)['Val'].mean()
low = df['ID'] == df_avg.loc[df_avg['Val'] < 55]['ID']
下面的代码完成了第一部分
df_avg = df.groupby('ID', as_index=False)['Val'].mean()
然后我想要两个新的DataFrame,其中第一个包含来自第一个DataFrame的那些行,其中那些[‘ID’]的平均值低于阈值,其他包含那些平均值高于阈值的[‘ID’].
low = df['ID'] == df_avg.loc[df_avg['Price'] < 55]['ID']
这就是我试图做的事情的逻辑,但提出:ValueError只能比较标签相同的Series对象.
我不关心标签,我只想匹配[‘ID’]列中的值.
谢谢