![](/img/trans.png)
[英]Python Pandas filtering; TypeError: cannot convert the series to <class 'int'>
[英]Propagation in Python - Pandas Series TypeError
我試圖通過將 Pandas 數據幀的兩列加在一起然后取平方根來傳播 Python 中的不確定性。 但是,當我嘗試使用 Python 的math.sqrt
function 時,我收到一個TypeError: cannot convert the series to <class 'float'>
。
這是我一直在做的事情:
joinedDF['combined_error'] = math.sqrt((joinedDF.error1**2 + joinedDF.error2**2).astype(float))
使用joinedDF.dtypes
,我驗證了兩個錯誤列都是float64
。
我什至嘗試將所有內容分開,但我仍然收到 TypeError。 有關如何修復此問題的任何建議?
我想到了兩個選擇。
選項 1:使用numpy.sqrt
:
import numpy as np
joinedDF['combined_error'] = np.sqrt((joinedDF['error1']**2 +
joinedDF['error2']**2))
選項 2:如果您出於某種原因想要/需要避免 numpy,您可以apply
math.sqrt
應用於數字列。 這可能比選項 1 慢,但在我的測試中有效:
joinedDF['combined_error'] = (joinedDF['error1']**2 +
joinedDF['error2']**2).apply(math.sqrt)
次要風格注釋:通常建議使用索引(方括號)而不是屬性訪問(點表示法)來引用 DataFrame 列,因此我相應地修改了您的代碼。 更多閱讀: 使用方括號或點訪問列有什么區別?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.