如何連接三個沒有行不匹配的熊貓數據幀

TCS106

我在將三個 DataFrame 與 Pandas 連接時遇到了一些問題。我的 DataFrame 之一的行與其他兩個不一致(請參閱下面的代碼和輸出):

import requests
import pandas as pd
from bs4 import BeautifulSoup

List = ['LU0526609390:EUR', 'IE00BHBX0Z19:EUR', 'LU1076093779:EUR', 'LU1116896363:EUR']
df = pd.DataFrame(List, columns=['List'])
urls = 'https://markets.ft.com/data/funds/tearsheet/summary?s='+ df['List']

dfs =[]
results = pd.DataFrame()
for url in urls:
    print(url)
    r = requests.get(url).content
    soup = BeautifulSoup(r, 'html.parser')
    elemList = soup.find('title')
    df0 = pd.DataFrame(elemList, columns = ['Fund Name'])
    df0["Fund Name"] = df0["Fund Name"].str.replace("summary - FT.com", "", regex=True)
    table1 = soup.find_all('table')[0]
    table2 = soup.find_all('table')[1]
    df1 = pd.read_html(str(table1), index_col=0)[0].T
    df2 = pd.read_html(str(table2), index_col=0)[0].T
    df = pd.concat([df0, df1, df2], axis=1)
    dfs.append(df)

pd.concat(dfs).to_csv(r'/Users/Test.csv', index=False)    

我的輸出如下:

在此處輸入圖片說明

看起來我的 df0 DataFrame 上的行(列:'Fund Name')與我的其他 DataFrame 的行不一致。如果有人能讓我知道為什麼會這樣,我將不勝感激。謝謝!

耶斯列

想法是在Fund Name第一列中添加DataFrame.insert

dfs =[]
results = pd.DataFrame()
for url in urls:
    print(url)
    r = requests.get(url).content
    soup = BeautifulSoup(r, 'html.parser')
    elemList = soup.find('title')
    
    table1 = soup.find_all('table')[0]
    table2 = soup.find_all('table')[1]
    df1 = pd.read_html(str(table1), index_col=0)[0].T
    df2 = pd.read_html(str(table2), index_col=0)[0].T
    # print (df2)
    df = pd.concat([df1, df2], axis=1)
    df.insert(0, 'Fund Name', elemList)
    df["Fund Name"] = df["Fund Name"].str.replace("summary - FT.com", "", regex=True)
    dfs.append(df)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何讓一列保留兩個小數點,另一列在數據幀/熊貓中沒有小數點(int)

'str' 沒有屬性 'str' 熊貓數據幀提取

如何根據順序合併熊貓中的兩個數據幀

如何比較兩個帶有時間戳的數據幀並創建數據幀字典?蟒蛇熊貓

如何逐個單元地填充具有循環的零列的空熊貓數據幀?

如何使用不純的函數將一行從一個熊貓數據幀移動到另一個?

如何優化熊貓中的數據幀迭代?

如何在熊貓中按日期交叉表或計算數據幀行

熊貓將數據幀的行轉換為對角線數據幀

迭代熊貓數據幀並刪除行,如果其中的值小於前一個

使用三個單獨的鍵連接兩個數據幀

刪除每個索引的多索引熊貓數據幀的最低五個值

熊貓無法使用另一個數據幀中的值在數據幀中找到值

在兩個公共列 R 的匹配值上連接兩個數據幀

Python中熊貓數據幀的鄰接矩陣

將多個小數據幀連接為一個大數據幀

如何將熊貓數據幀的值分配到多維 numpy 數組中

如何根據具有特定單元格值的行來構建熊貓數據框,直到下一個值發生變化?

如何根據熊貓的範圍進行匹配

如何在 Python/pandas 中綁定(連接)3 個數據幀

如何定義火花數據幀連接匹配優先級

如何為熊貓數據框中的每一行映射/替換列中的多個值

如何在具有多個索引的熊貓中創建數據透視表?

合併兩個熊貓數據框而不復制項目

在兩個數據幀之間使用內部連接但要獲得特定的行數

如何遍歷兩個數據幀並在值匹配時執行特定操作?

如何聚合熊貓數據框中的數據?

熊貓在多個日期時間之間選擇數據框行

取連續行直到特定值熊貓數據框