将 DataFrame 中的列(来自 Binance API)与变量相乘

Multiply a column (from Binance API) in a DataFrame with a variable

我在 Jupyter Noteebok 中编写了这段代码,我在 DataFrame 中从 Binance API 获得了实时 BTC 价格,现在我想将一个变量乘以 BTC 价格列以创建一个新的,名为“值” ".

def prices(crypto,interval,start):
    BTC_Owned=float(0.004)
    df=client.get_historical_klines(crypto,interval,start)  #for Binance API 
    df=pd.DataFrame(df)     
    df=df.set_index(0)    #set time as index   
    df.index=pd.to_datetime(df.index, unit='ms')    #conversion from unix time 
    df.index.names=['Time']
    df=df.iloc[:,:1]     
    df.columns=['BTC_Price']
    df['value']=BTC_Owned * df['BTC_Price']
    df=df.astype('float64')
    #return type(df['BTC_Price'])   #pandas.core.series.Series
    return df
  

我得到的错误信息:

TypeError: 无法将序列乘以 'float' 类型的非整数。

我已经尝试过其他乘法方法,但得到了同样的错误。

请帮忙。

这是可能发生的情况:

BTC_Owned=float(0.004)
import pandas as pd

print("\nTry with BTC_Price values of type float:")
df=pd.DataFrame({'value':[1,2,3], 'BTC_Price':[100.0,200.0,300.0]})
df['value'] = BTC_Owned * df['BTC_Price']
print(df)

print("\nTry with BTC_Price values of type string converted to float:")
df=pd.DataFrame({'value':[1,2,3], 'BTC_Price':['100.0','200.0','300.0']})
df['value'] = BTC_Owned * df['BTC_Price'].astype(float)
print(df)

print("\nTry with BTC_Price values of type string (unconverted):")
df=pd.DataFrame({'value':[1,2,3], 'BTC_Price':['100.0','200.0','300.0']})
df['value'] = BTC_Owned * df['BTC_Price']
print(df)

第一个有效。

第二个有效(并且可能展示了如何使用 astype(float) 修复错误)。

第三个给出了您在尝试将字符串系列乘以浮点数时遇到的错误。