问题描述
尝试运行以下代码...这只是一个片段,但显示了我正在尝试执行的操作。 不确定熊猫如何工作以允许其通过set / series / DataFrame中的1个以上的数据。正在获取类型错误...详细来说,我不理解如何转换DataFrame才能使其正常工作。
raise TypeError(f"Could not convert {x} to numeric") from err TypeError: Could not convert 11853.2600000011833.8100000011826.4100000011854.5600000011751.7900000011748.0500000011712.9400000011695.9000000011729.2200000011741.4800000011662.8600000011642.6300000011574.9800000011480.7900000011425.0800000011492.5600000011449.2300000011417.63000000 to numeric
@H_502_5@致电:
data2 = pd.DataFrame(data,columns = ['timestamp','open','high','low','close','volume','close_time','quote_av','Trades','tb_base_av','tb_quote_av','ignore' ]) data2['timestamp'] = pd.to_datetime(data2['timestamp'],unit='ms') # Start of getting MFI data and calculating MFI high = pd.Series(data2['high']) low = pd.Series(data2['low']) close = pd.Series(data2['close']) volume = pd.Series(data2['volume']) cmfi = mfi2(high,low,close,volume)
@H_502_5@打电话给这个...
def mfi2(high,volume): df = pd.DataFrame([high,volume]).T df.columns = ['High','Low','Close','Volume'] df['Up_or_Down'] = 0 df.loc[(df['Close'] > df['Close'].shift(1,fill_value=df['Close'].mean())),'Up_or_Down'] = 1 df.loc[(df['Close'] < df['Close'].shift(1,'Up_or_Down'] = 2 # 1 typical price tp = (df['High'] + df['Low'] + df['Close']) / 3.0 # 2 money flow mf = tp * df['Volume'] # 2 up or down column df['Up_or_Down'] = 0 df.loc[(tp > tp.shift(1)),'Up_or_Down'] = 1 df.loc[(tp < tp.shift(1)),'Up_or_Down'] = -1 # 3 positive and negative money flow with n periods df['1p_Positive_Money_Flow'] = 0.0 df.loc[df['Up_or_Down'] == 1,'1p_Positive_Money_Flow'] = mf n_positive_mf = df['1p_Positive_Money_Flow'].rolling(n,min_periods=0).sum() # 3 money flow mf = tp * df['Volume'] * df['Up_or_Down'] df['1p_Negative_Money_Flow'] = 0.0 df.loc[df['Up_or_Down'] == 2,'1p_Negative_Money_Flow'] = mf n_negative_mf = df['1p_Negative_Money_Flow'].rolling(n,min_periods=0).sum() # 4 positive and negative money flow with n periods n_positive_mf = mf.rolling(n).apply( lambda x: np.sum(np.where(x >= 0.0,x,0.0)),raw=True) n_negative_mf = abs(mf.rolling(n).apply( lambda x: np.sum(np.where(x < 0.0,raw=True)) # 4 money flow index # 5 money flow index mr = n_positive_mf / n_negative_mf mr = (100 - (100 / (1 + mr))) if fillna: mr = mr.replace([np.inf,-np.inf],np.nan).fillna(50) return pd.Series(mr,name='mfi_'+str(n))
@H_502_5@解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)