Numpy 使用混合数据清理或引用数据帧

Numpy 使用混合数据清理或引用数据帧,numpy,pandas,datanitro,Numpy,Pandas,Datanitro,我有一个pandas数据框,其中包含表格式的混合数据: 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, column

我有一个pandas数据框,其中包含表格式的混合数据:

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时,错误已经消失了。作为参考,错误发生在0.10.0,Numpy:1.6.2


升级到最新版本的明显答案对我来说是不可用的,因为代码必须是健壮的。是否有其他语法用于提取数据行,以便我可以对其进行计算?。如果我最终将软件包升级到最新版本,肯定会想要一些不会损坏的东西。在数据进入数据帧之前操作数据也不是一个选项,因为pandas数据帧是由DataNitro df方法生成的。

如果您在创建数据帧之后和执行操作之前可以进行操作,那么您可以尝试以下操作:

row2 = df.T['row2']
row2 = row2.astype(float)
x = np.tan(1)
row2 * x

我最终求助于升级我的软件包。没有进行广泛的测试,但看起来是旧版本的numpy导致列中混合类型的数据帧出现问题。