繁体   English   中英

从 web ZFC35FDC70D5FC69D269883A822C7A 循环通过 pandas dataframe

[英]Looping through pandas dataframe from web html

我是 python 的新手。 我正在研究财务数据。 我想遍历多个数据集。

我有以下代码来读取数据。

df1_url = pd.read_html("https:url1")

df2_url = pd.read_html("https:url2")

df3_url = pd.read_html("https:url3")

df4_url = pd.read_html("https:url4")

每个数据集都有不同的 9 个不同的表。 但是每个数据集都是相同的格式。

例如。 结果 output 应该是这样的:

bs_sheet = df1_url[1]

ps_sheet = df1_url[3]

cf_sheet = df1_url[5]

此过程对于所有数据帧都是相同的。 在这里,我想像这样循环 4 个不同的数据帧。

所以我尝试将所有这 4 个数据集放入字典中。

dfs= {'df1':df1_url,'df2':df2_url,'df3':df3_url,'df4':df4_url}

我试图遍历不同的数据集,

def trans(frame):
   for i in dfs:
      bs_sheet = i[1]
      ps_sheet = i[3]
      cf_sheet = i[5]
      data = pd.concat([bs_sheet,pl_sheet,cf_sheet],axis=0)
      data = data.transpose

应该对所有 4 个不同的数据集执行此操作。 在执行此操作时,我收到超出范围的字符串。 在此之后如何访问每个数据集?

我的解决方案是这样的:

d={}
for key,data in dfs.items():
        bs_sheets = data[1]
        ps_sheets= data[3]
        cs_flows = data[5]
        data = pd.concat([bs_sheets,pl_sheets,cs_flows],axis=0)
        data = data.transpose()
        d[key]= data

感谢您帮助我@Zeinab @lucas。

您的 function 将无法工作,因为需要将 function 中的框架更改为 dfs

def trans(dfs):
   for i in dfs:
      bs_sheet = i[1]
      ps_sheet = i[3]
      cf_sheet = i[5]
      data = pd.concat([bs_sheet,pl_sheet,cf_sheet],axis=0)
      data = data.transpose
import pandas as pd
dfs= {'df1':['a','a','a','a'],'df2':['b','b','b','b'],
    'df3':['c','c','c','c'],'df4':['d','d','d','d']}
d = []
for i in dfs.values() :
    d.append(pd.Series(i))

final_pd= pd.concat(d,axis = 1)
print(final_pd)
   0  1  2  3
0  a  b  c  d
1  a  b  c  d
2  a  b  c  d 
3  a  b  c  d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM