我有一个pandas DataFrame,我想根据原始DataFrame的['Val']列中的平均值创建两个新的DataFrame,并将列['ID']分组。如下所示:
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']列中的值。
谢谢
1条答案
按热度按时间a11xaf1n1#
使用
df_avg['Val'] < 55
条件作为“低于”/“高于”dfs的过滤/除法掩码: