我使用以下代码从时间序列数据集中删除了具有3个独立特征和1个从属特征的均值
mean = np.mean((df.values), axis=-1, keepdims=True)
df = df - mean
但这是行而不是列的平均值。是否有一个原因 ?因为我认为-1表示应该取列的平均值?还是因为它与时间有关?
数据框示例
df = pd.DataFrame({
'date': [1988, 1989, 1990, 1991],
'value1': [1265, 4349, 5589, 3340],
'value2': [155, 552, 958, 280],
'value3': [55, 13, 95, 80],
'value4': [0.55, 0.12, 0.80, 0.22]
})
df.set_index('date', inplace=True)
答案 0 :(得分:1)
将其更改为axis=0
,它将为您提供“列”的平均值。
说明
只需绘制数据框,您将看到其实际结构:
>>> df
value1 value2 value3 value4
date
1988 1265 155 55 0.55
1989 4349 552 13 0.12
1990 5589 958 95 0.80
1991 3340 280 80 0.22
通过这种方式,无需调用numpy。熊猫具有内置功能:
>>> df.mean()
value1 3635.7500
value2 486.2500
value3 60.7500
value4 0.4225
dtype: float64
请注意,我没有明确设置axis=0
,因为它是默认设置。