2016-03-21 23 views
1

如果我有一個數據幀,並且我想創建一個新的列,其結果是逐行結果是列1 - 列2,什麼是最好的代碼完成這個? column1和column2在它們中有NaN,所以我相信這就是我得到錯誤的原因。錯誤創建一個列是兩列之間的差異

感謝, 本

這裏是我的數據框

>>> frame2 
    col1 col2 col3 
0 NaN NaN  8 
1  2  5  9 
2 NaN NaN 10 
3  4  7 11 
4 NaN NaN 12 

我收到以下錯誤

TypeError: unsupported operand type(s) for -: 'str' and 'str' 
+4

請發佈原始數據爲這兩個dfs,您的代碼來創建dfs和所需的結果,請注意,很多原因存在爲什麼這不起作用,如不兼容的形狀,不同的索引值,不同的列名稱等。 – EdChum

+0

你的錯誤似乎表明'dtypes'或者是'str'或者是混合類型,所以你可以爲[熾烈的馬鞍](https://www.youtube.com/watch?v=DNC3OciAF3w)數據,加載重現錯誤的數據的代碼 – EdChum

+0

什麼是列的dtype?這個錯誤很明顯地表明你正在嘗試減去字符串。 –

回答

2

要減去,比方說,col1col2,嘗試`astype( float):

df.col1.astype(float) - df.col2.astype(float) 

根據消息,您的列看起來像數字,但它們實際上是字符串。

+0

謝謝!這工作! – mangodreamz

+0

非常感謝Ami! – mangodreamz

+0

一旦我能夠接受你的答案 – mangodreamz

相關問題