Python 添加数据帧时遇到困难

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],:]

我期待通过一个从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],:]
    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删除了他们的建议,但是是的,您的
返回数据帧
缩进不正确。