【发布时间】:2017-03-02 05:24:36
【问题描述】:
我有一个熊猫数据框:
>>> X_df.shape
Out[35]: (177, 2762)
>>> X_df.ix[0:5,1000:1005]
Out[40]:
1000 1001 1002 1003 1004 1005
2016-01-04 119.225 nan nan nan nan nan
2016-01-05 119.225 119.189 119.177 119.160 119.203 119.220
2016-01-06 119.175 119.175 nan 119.204 119.208 119.221
2016-01-07 118.532 nan 118.542 118.529 nan 118.534
2016-01-08 117.861 117.820 117.762 nan 117.686 117.709
我在每一行创建一阶差分的平均值:
>>> mu = (X_df.diff(1,axis=1)).mean(axis=1)
>>> mu.head()
Out[42]:
2016-01-04 -0.001
2016-01-05 -0.001
2016-01-06 -0.000
2016-01-07 -0.000
2016-01-08 -0.000
dtype: float64
然后,如果我尝试从每个值中减去这个平均值,我会得到所有的 nan:
>>> (X_df.diff(1,axis=1)-mu).ix[0:5,1000:1005]
Out[51]:
1000 1001 1002 1003 1004
2016-01-04 nan nan nan nan nan
2016-01-05 nan nan nan nan nan
2016-01-06 nan nan nan nan nan
2016-01-07 nan nan nan nan nan
2016-01-08 nan nan nan nan nan
不同的减法
>>> ((X_df.diff(1,axis=1).subtract(mu,axis=1))).ix[0:5,1000:1005]
Out[52]:
1000 1001 1002 1003 1004
2016-01-04 nan nan nan nan nan
2016-01-05 nan nan nan nan nan
2016-01-06 nan nan nan nan nan
2016-01-07 nan nan nan nan nan
2016-01-08 nan nan nan nan nan
使用mu[:,] 代替mu 得到相同的结果
有没有办法解决这个问题?
【问题讨论】:
标签: pandas dataframe nan broadcasting