Python 添加数据帧时遇到困难
我期待通过一个从web提取一系列数据的循环来附加各种数据帧。函数Python 添加数据帧时遇到困难,python,pandas,Python,Pandas,我期待通过一个从web提取一系列数据的循环来附加各种数据帧。函数ratios\u funda本身工作正常,但是我没有找到一种方法根据不同的标记循环它,并将它们一个接一个地附加到空的数据帧中。这是代码 import pandas as pd cartera = ['FB.O', 'SAN.MC','TRE.MC', 'BBVA.MC'] def ratios_funda(x): rat1=x[2].loc[[1,7,8,10],:] rat2=x[3].loc[[1,5],:]
ratios\u funda
本身工作正常,但是我没有找到一种方法根据不同的标记循环它,并将它们一个接一个地附加到空的数据帧中。这是代码
import pandas as pd
cartera = ['FB.O', 'SAN.MC','TRE.MC', 'BBVA.MC']
def ratios_funda(x):
rat1=x[2].loc[[1,7,8,10],:]
rat2=x[3].loc[[1,5],:]
rat3=x[5].loc[[1,2,4,5],:]
rat5=x[7].loc[[5,6],:]
rat6=x[8].loc[[1,7],:]
rats=[rat1,rat2,rat3,rat5,rat6]
df=pd.concat([df.set_index(df.columns[0]) for df in rats])
df.index.names=['Fundam ratios']
df.rename(columns={1:'Company',2:'Industry',3:'Sector'}, inplace=True)
df.index = df.index.str.strip()
return df
def resultados():
dataframe=pd.DataFrame()
for titulos in cartera:
ruta=pd.read_html('http://www.reuters.com/finance/
stocks/financialHighlights?symbol='+str(titulos),flavor='html5lib')
if dataframe.empty:
dataframe= ratios_funda(ruta)
else:
dataframe=pd.concat([dataframe, ratios_funda(ruta)],axis=1)
return dataframe
print(resultados())
看起来它没有循环。问题在于在for
循环中有return
def resultados():
dataframe=pd.DataFrame()
for titulos in cartera:
ruta=pd.read_html('your url here')
if dataframe.empty:
dataframe= ratios_funda(ruta)
else:
dataframe=pd.concat([dataframe, ratios_funda(ruta)],axis=0)
return dataframe
这不是代码的问题,问题是不是所有的代码在HTML中的结构都是相同的,这就是为什么我的结果是混合的。谢谢大家的帮助 它怎么不起作用呢?我发现的问题是,试图用不同的ruta
循环第一个函数,并在dataframe
中一个接一个地追加它们。顺便说一下,谢谢你的编辑,代码乍一看很好。您是否收到错误消息?我没有收到代码中的错误,问题是我希望在函数resultados
中附加第一个函数的结果,但它没有。我相信我做的循环是错误的。我不知道为什么@User193452删除了他们的建议,但是是的,您的返回数据帧
缩进不正确。