假设有一个数据框df,其中有两列(a和b),我们想按列a进行分组,并在每个组中计算列b的平均值,同时排除某些不需要的行。 这可以通过如下代码实现:
import pandas as pd
# 创建数据框
df = pd.DataFrame({'a': ['x', 'x', 'y', 'y', 'z', 'z'],
'b': [1, 2, 3, 4, 5, 6]})
# 排除行
exclude_rows = ['x']
df = df[~df['a'].isin(exclude_rows)]
# 按组计算均值
df_mean = df.groupby('a', as_index=False)['b'].mean()
print(df_mean)
输出结果为:
a b
0 y 3.5
1 z 5.5
这里我们使用了isin()
方法来检查数据框中的每一个元素是否在要排除的行中,然后使用波浪符“~”来反转检查结果,从而获取到不需要排除的行。最后使用groupby()
和mean()
方法对排除后的数据框进行矢量化的计算,得出每个组的均值。
上一篇:按组计算几何平均值
下一篇:按组计算累积乘积和累积求和