Я использую следующий код, и, как вы можете видеть во 2-й строке, округление правильное, а в 3-й строке данные усекаются.
import pandas as pd
import numpy as np
data = [[11,10],[17.50,11.01],[21.95,22.5]]
df = pd.DataFrame(data,columns=['A','B'])
df['avg'] = df[["A", "B"]].mean(axis=1)
df['avg_round'] = df['avg'].apply(lambda x: np.round(x, decimals=2))
Я тоже пробовал, и результаты идентичны:
df['avg] = df[["A", "B"]].mean(axis=1).round(2)