为Python创建日期时间向量

时间:2015-10-10 21:12:01

标签: python python-2.7 datetime pandas

我有两个数据框df_tradedf_close,我想将他们的点积存储在ts_fund中,但如果ts_fund是一个问题并不重要数组,数据帧,向量等。这两个数据帧将值和时间存储为datetime。例如,df_trade

2011-1-05 15 100
2011-1-20 10 200

df_close

2011-1-05 1 .5
2011-1-20 .8 .1

所以我希望ts_fund中的结果为:

2011-1-05 65
2011-1-20 28

我尝试了下面的

ts_fund = np.zeros((len(ldt_timestamps), 1))
ts_fund = pd.DataFrame(ts_fund, index=ldt_timestamps, columns='portfolio value')

 for index, row in df_trade.iterrows():
    portfolio_value = np.dot(row.values.astype(float), df_close.ix[index].values)
    ts_fund[index] = portfolio_value

但是我收到了错误

TypeError: Index(...) must be called with a collection of some kind, 'portfolio value' was passed

如果我将ts_fund设置为矢量或数组而不是数据帧会更容易吗?

1 个答案:

答案 0 :(得分:0)

这样就够了吗?

def equity(df1,df2):
    shape1 = df1.shape
    shape2 = df2.shape
    if not shape1 == shape2:
        raise Exception("df's are of different size!")
    return df1.mul(df2, axis='columns', fill_value=0).sum(axis =1)

equity(df1, df2)  

2011-01-05    65
2011-01-20    28
dtype: float64

一般情况下,避免迭代行,除非绝对必要,并尝试利用pandas的矢量化操作