我写了一堂课来抓取公众假期的数据,但是我想像这样多年重复我的课:
outputt_path = "C:/Users/N000193384/Downloads/countries/"
recent_years = ["2015", "2016", "2017", "2018"]
for year in recent_years :
PBC = Event_Scraper("italy", year, outputt_path)
df = PBC._read_html_()
df = df.append(df)
我的班级使用了国家/地区的名称和年份,所以outputt_path在这里没有用。
_read_html_()建立一个干净的数据框 我想附加每个数据框。
以下是一年数据框的示例:
Date Holiday Name Holiday Type
0 2018-01-01 New Year's Day National holiday
1 2018-01-06 Epiphany National holiday
2 2018-03-20 March Equinox Season
3 2018-03-30 Good Friday Observance
4 2018-04-01 Easter Day National holiday
答案 0 :(得分:2)
您可以创建数据框列表,并将每年的数据新数据框继续添加到该列表中。抓取完数据后,可以将它们连接到一个数据框中,如下所示:
dfs = []
for year in recent_years :
PBC = Event_Scraper("italy", year, outputt_path)
df = PBC._read_html_()
dfs.append(df)
final_df = pd.concat(dfs)
在数据帧上追加或执行合并操作是一项昂贵的操作,因为Pandas需要为新数据帧分配内存并复制所有数据,因此,在循环中多次执行此操作将很昂贵。这样操作可以节省开销,因为您只需执行一次即可。