Reputation: 51
I'm facing an issue when trying to sum a particular column in a dataframe. Why the sum function only able to concatenate str and not float?
for symbol in crypto_pair:
#retrieve data from binance
data_new = retrieve_binance_data(symbol=symbol)
data_sorted = differiate_rsi(data_new, currency=symbol)
Total = (data_sorted['Profit'].sum())
C:\Users\andyq\PycharmProjects\BinanceTrading\venv\Scripts\python.exe C:/Users/andyq/PycharmProjects/BinanceTrading/testenvironmentbinance.py Traceback (most recent call last): File "C:/Users/andyq/PycharmProjects/BinanceTrading/testenvironmentbinance.py", line 676, in Total = (data_sorted['Profit'].sum()) File "C:\Users\andyq\PycharmProjects\BinanceTrading\venv\lib\site-packages\pandas\core\generic.py", line 11182, in stat_func min_count=min_count, File "C:\Users\andyq\PycharmProjects\BinanceTrading\venv\lib\site-packages\pandas\core\series.py", line 3891, in _reduce return op(delegate, skipna=skipna, **kwds) File "C:\Users\andyq\PycharmProjects\BinanceTrading\venv\lib\site-packages\pandas\core\nanops.py", line 69, in _f return f(*args, **kwargs) File "C:\Users\andyq\PycharmProjects\BinanceTrading\venv\lib\site-packages\pandas\core\nanops.py", line 493, in nansum the_sum = values.sum(axis, dtype=dtype_sum) File "C:\Users\andyq\PycharmProjects\BinanceTrading\venv\lib\site-packages\numpy\core_methods.py", line 38, in _sum return umr_sum(a, axis, dtype, out, keepdims, initial, where) TypeError: can only concatenate str (not "float") to str
Process finished with exit code 1
Upvotes: 1
Views: 2216
Reputation: 430
You can handle this using a special function. I am sharing a similar example.
def sumSpecial(x):
try:
f = float(x)
return f
except Exception as e:
return 0
z = [1,0, "", 0, "0.5"]
s = pd.Series(z)
s1 = s.agg(sumSpecial).sum()
print(s1)
Upvotes: 0