[英]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.