如何将多个数据帧动态附加在一起?

时间:2018-12-21 01:04:09

标签: python python-3.x pandas

我正在将数据从CSV加载到数据框中,然后遍历各行以进行Web查询。我的所有代码如下所示。 BTY,谢谢您到目前为止所提供的帮助!

import pandas as pd
from bs4 import BeautifulSoup
import requests
import pandas as pd


df = pd.read_csv('C:\\Users\\ryans\\OneDrive\\Desktop\\Briefcase\\NY Times Dates\\exchanges.csv')
print(df)

for index, row in df.iterrows():
    passin = 'https://markets.on.nytimes.com/research/markets/holidays/holidays.asp?display=market&exchange='+row["Symbol"]
    dfs = pd.read_html(passin)
    df = dfs[0]
    print(df)

我在这里的最后一步是将数据帧2附加在数据帧1下,并将数据帧3附加在数据帧2下,依此类推,依此类推……我在Google上寻求了解决方案,并且发现了几种在#1下附加#1的技术,仅此而已。我不确定如何将数据帧#n附加到数据帧#n-1。我怎样才能做到这一点?我猜这是一个增量过程,但是我无法在这里正常工作。如果可以的话,请放弃一些知识。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将生成器表达式与pd.concat一起使用:

url = 'https://markets.on.nytimes.com/research/markets/holidays/holidays.asp?display=market&exchange='

res = pd.concat(pd.read_html(f'{url}{symbol}')[0] for symbol in df['Symbol'])

如果您希望在连接时忽略索引,请使用参数ignore_index=True

gen = (pd.read_html(f'{url}{symbol}')[0] for symbol in df['Symbol'])
res = pd.concat(gen, ignore_index=True)