Pandas 平均轴参数

Pandas Mean Axis Argument

我有一个这样形式的数据集:

+--------+---+---------+--------+-------+-------+-------+
|            |  A      |  B     |   C   |   D   |   E   |
+------------+---------+--------+-------+-------+-------+
|      0     | 1       | 2      |   3   |   4   |   AB  |
+------------+---------+--------+-------+-------+-------+

我想计算 B 到 D 之间的行值的平均值。因此第 0 行将是:

B+C+D/(3) = 3

我该怎么做?

您可以在所选列上使用 .mean(axis=1)。添加 axis=1 意味着它将应用于水平轴,或按行:

a = {'A':[1],'B':[2],'C':[3],'D':[4],'E':['AE']}
df = pd.DataFrame(a)
cols = ['B','C','D']
df['Average'] = df[cols].mean(axis=1)
print(df)

输出:

   A  B  C  D   E  Average
0  1  2  3  4  AE      3.0

您可以使用df.mean

df.loc[:, "b":"d"].mean(axis=1)

df = pd.DataFrame({"a": [1, 2], "b": [2, 3], "c": [3, 4], "d": [4, 5], "e": list("AB")})

df["s"] = df.loc[:, "b":"d"].mean(axis=1)

输出:

Out[12]:    a  b  c  d  e    s
         0  1  2  3  4  A  3.0
         1  2  3  4  5  B  4.0