2014-02-09 34 views
0

我有工作正常,但操作時產生:廣播pandas.Series.div逐列的數據幀

FutureWarning: TimeSeries broadcasting along DataFrame index by default 
is deprecated. 

所以我喜歡做計算的方式是一致的與未來的版本。

我有一個pandas.Series,我想將Series除以pandas.DataFrame的每一列。

所以我們可以說我已經和SeriesDataFrame,具有以下形狀:

In [15]: my_series.shape 
Out[15]: (1504,) 

In [16]: my_df.shape 
Out[16]: (1504, 4) 

當我運行my_series/my_df我得到期望的結果:

In [17]: (my_series/my_df).shape 
Out[17]: (1504, 4) 

當然,在實施pandas.Series.divide運營商回來發生錯誤:

In [18]: my_series.div(my_df) 
ValueError: operands could not be broadcast together with shapes (1504) (1504,4) 

我已經給了series.apply功能的嘗試,但還沒有得到我所期望的(根據我如何使用pandas.DataFrame.apply):

In [19]: my_series.apply(pandas.Series.divide, my_df) 
Out[19]: ValueError  

In [22]: my_series.apply(pandas.Series.divide, lambda x: my_df[my_df.columns[x]]) 
Out[22]: TypeError 

任何有識之士一如既往,將不勝感激。

回答

0

我不敢相信我沒有想到這樣做...... 相當真的很尷尬。

In [24]: my_df.apply(lambda x: my_series.div(x)).shape 
Out[24]: (1504, 4)