簡體   English   中英

大熊貓合並300個數據框

[英]pandas merging 300 dataframes

該代碼的目的是

  1. 通過熊貓和美麗湯刮300張桌子
  2. 將此表連接到單個數據框中。第一步的代碼工作正常。 但這在第二個階段不起作用。

這是代碼:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM