我有一個這種形式的數據集:+--------+---+---------+--------+-------+-------+-------+| | A | B | C | D | E |+------------+---------+--------+-------+-------+-------+| 0 | 1 | 2 | 3 | 4 | AB |+------------+---------+--------+-------+-------+-------+我想計算 B 到 D 之間的行值的平均值。所以對于第 0 行將是:B+C+D/(3) = 3我怎樣才能做到這一點?
2 回答

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
您可以.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

MYYA
TA貢獻1868條經驗 獲得超4個贊
您可以使用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
添加回答
舉報
0/150
提交
取消