我想将横截面的值设置为相对于平均值的值。下面的代码将值设置为 null,但我希望这些值是 -5 和 5。是否有一种易于阅读的方法来执行此操作而无需遍历索引中的每一列?
import pandas as pd
x = pd.DataFrame({'a': [1, 2, 3], 'b': [1, 2, 3]})
y = pd.DataFrame({'a': [11, 12, 13], 'b': [21, 22, 23]})
df = pd.concat({'x': x, 'y': y}, axis=1)
timeslice = df.loc[1, (slice(None), 'a')].values.flatten()
timeslice = timeslice[~np.isnan(timeslice)]
average = np.mean(timeslice)
df.loc[1, (slice(None), 'b')] = df.loc[1, (slice(None), 'a')] - average
x y
a b a b
0 1 1.0 11 21.0
1 2 NaN 12 NaN
2 3 3.0 13 23.0