[英]pandas merging 300 dataframes
该代码的目的是
这是代码:
import pandas as pd
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
header = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 " "Safari/537.36", "X-Requested-With": "XMLHttpRequest"}
url = open(r"C:\Users\Sayed\Desktop\script\links.txt").readlines()
for site in url:
req = Request(site, headers=header)
page = urlopen(req)
soup = BeautifulSoup(page, 'lxml')
table = soup.find('table')
df = pd.read_html(str(table), parse_dates={'DateTime': ['Release Date', 'Time']}, index_col=[0])[0]
df = pd.concat(df, axis=1, join='outer').sort_index(ascending=False)
print(df)
这是错误:
追溯(最近一次通话):
在第18行的文件“ D:/Projects/Tutorial/try.py”
df = pd.concat(df, axis=1, join='outer').sort_index(ascending=False)
文件“ C:\\ Users \\ Sayed \\ Anaconda3 \\ lib \\ site-packages \\ pandas \\ core \\ reshape \\ concat.py”,第225行,以concat copy = copy,sort = sort)
初始化文件“ C:\\ Users \\ Sayed \\ Anaconda3 \\ lib \\ site-packages \\ pandas \\ core \\ reshape \\ concat.py”,第241行
'"{name}"'.format(name=type(objs).__name__))
TypeError:第一个参数必须是pandas对象的可迭代对象,您传递了类型为“ DataFrame”的对象
Pandas concat函数将Series,DataFrame或Panel对象的序列或映射作为第一个参数。 您的代码当前正在传递单个DataFrame。
我怀疑以下内容可以解决您的问题:
import pandas as pd
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
header = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 " "Safari/537.36", "X-Requested-With": "XMLHttpRequest"}
url = open(r"C:\Users\Sayed\Desktop\script\links.txt").readlines()
dfs = []
for site in url:
req = Request(site, headers=header)
page = urlopen(req)
soup = BeautifulSoup(page, 'lxml')
table = soup.find('table')
df = pd.read_html(str(table), parse_dates={'DateTime': ['Release Date', 'Time']}, index_col=[0])[0]
dataframes.append(df)
concat_df = pd.concat(dfs, axis=1, join='outer').sort_index(ascending=False)
print(df)
我要做的就是创建一个名为dfs的列表,作为在站点中进行迭代时追加DataFrame的位置。 然后将dfs作为参数传递给concat。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.