我有一个包含两列的数据框,我想将每一列的中值设置为零。如何在不更改标准偏差的情况下做到这一点?或者更好的做法是这样做的正确方法?
假设我有
df = pd.DataFrame(np.random.randn(100, 2))
#first column
df0=df[0]
#set median to zero
test=abs(df0-df.median())
自从我再次寻找
test.median()
它打印出的值不是我零,而是上面的值。我的想法有误吗?
答案 0 :(得分:1)
IIUC,你想要
test= df0 - df[0].median()
>>> test.median()
0.0
如果仅获取序列的绝对值,则将更改中间值,因为这当然取决于元素的顺序。
答案 1 :(得分:0)
这里主要需要做两件事:
不要使用绝对值,因为它会破坏您想要的median = 0
。
import pandas as pd
df = pd.DataFrame(np.random.randn(100, 2))
for col in df.columns:
df[col] = df[col] - np.median(df[col])
测试:
for col in df.columns:
print(np.median(df[col]))
0.0
0.0