我有一个熊猫数据框,其中包含表格格式的混合数据:
import datetime
d1 = datetime.datetime(2014, 1, 1)
d2 = datetime.datetime(2014, 1, 1)
d3 = datetime.datetime(2014, 1, 1)
a = [[True, False, True], [100.0, 200.0, 200.0], [2, 5, 5], [d1, d2, d3]]
df = pd.DataFrame(a, columns = ['Series0', 'Series1', 'Series3'], index=['row1','row2', 'row3', 'row4'])
df
Series0 Series1 Series3
row1 True False True
row2 100 200 200
row3 2 5 5
row4 2014-01-01 00:00:00 2014-01-01 00:00:00 2014-01-01 00:00:00
现在,如果我从数据框中切出一行数据并尝试将其与 float64 类型相乘:
row2 = df.T['row2']
x = np.tan(1)
row2 * x
我得到:
TypeError: unsupported operand type(s) for *: 'numpy.ndarray' and 'numpy.float64'
我已经检查过,使用最新版本的 numpy 和 pandas 时错误已经消失。作为参考,Pandas 0.10.0, Numpy: 1.6.2 发生错误。
我无法获得升级到最新版本的明显答案,因为代码必须比版本更健壮。是否有另一种语法可以提取数据行以便我可以对其进行计算?如果我最终将软件包升级到最新版本,绝对想要一些不会破坏的东西。在数据进入数据帧之前对其进行操作也不是一种选择,因为 pandas 数据帧是由 DataNitro df 方法生成的。