我有一个 pandas DataFrame,在“质量”列中有 float64。我np.diff()
用来查找此数据的第一个差异。
问题:如果我使用 data.mass 与 data.mass.values 相比,大小会发生变化注意,这个“错误”也可以在最小值、最大值和平均值不同的事实中看到......
import pandas as pd
import numpy as np
data = pd.DataFrame({'time': np.arange(1,101), 'mass': randn(100)})
dm = np.diff(data.mass, n=1)
dmv = np.diff(data.mass.values, n=1)
print 'data.mass: \t\t', dm.shape
print 'min: ', dm.min(), ' max: ', dm.max(), ' mean: ', dm.mean()
print ''
print 'now using data.mass.values in the calculations \n'
print 'data.mass.values: \t', dmv.shape
print 'min: ', dmv.min(), ' max: ', dmv.max(), ' mean: ', dmv.mean()
其输出为:
data.mass: (100,)
min: 0.0 max: 0.0 mean: 0.0
now using data.mass.values in the calculations
data.mass.values: (99,)
min: -3.49992599537 max: 2.52901842461 mean: -0.00718375066572
这是预期的功能吗?为什么我需要使用.value
,因为我理解 pandas DataFrames 无论如何都是 numpy 数组。