簡體   English   中英

將pandas.Series.div逐列廣播到DataFrame

[英]Broadcast pandas.Series.div column-wise to a DataFrame

我有一個運行正常的操作,但是正在生成:

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

因此,我想以與將來版本一致的方式進行計算。

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

假設我有和Series ,以及一個DataFrame ,具有以下形狀:

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

與往常一樣,任何見識將不勝感激。

我不敢相信我沒想到要這樣做……真的尷尬。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM