首页 > 解决方案 > Python - 创建一个 for 循环来构建具有多个数据帧的单个 csv 文件

问题描述

我是 python 新手,正在尝试各种方法来学习基础知识。我目前坚持的一件事是 for 循环。我有以下代码,并且肯定可以使用循环更有效地构建它,但我不确定具体如何。

import pandas as pd
import numpy as np
url1 = 'https://www.cbssports.com/nfl/stats/player/receiving/nfl/regular/qualifiers/?page=1'
url2 = 'https://www.cbssports.com/nfl/stats/player/receiving/nfl/regular/qualifiers/?page=2'
url3 = 'https://www.cbssports.com/nfl/stats/player/receiving/nfl/regular/qualifiers/?page=3'

df1 = pd.read_html(url1)
df1[0].to_csv ('NFL_Receiving_Page1.csv', index=False) #index false gets rid of index listing that appears as the very first column in the csv

df2 = pd.read_html(url2)
df2[0].to_csv ('NFL_Receiving_Page2.csv', index=False) #index false gets rid of index listing that appears as the very first column in the csv

df3 = pd.read_html(url3)
df3[0].to_csv ('NFL_Receiving_Page3.csv', index=False) #index false gets rid of index listing that appears as the very first column in the csv

df_receiving_agg = pd.concat([df1[0], df2[0], df3[0]])
df_receiving_agg.to_csv('NFL_Receiving_Combined.csv', index=False) #index false gets rid of index listing that appears as the very first column in the csv

我最终试图将上述 URL 中的数据组合到 csv 文件中的单个表中。

标签: python-3.xpandasdataframefor-loop

解决方案


你可以试试这个:

urls = [url1,url2,url3]
df_receiving_agg = pd.DataFrame()
for url in urls:
    df = pd.read_html(url)
    df_receiving_agg = pd.concat([df_receiving_agg, df])
df_receiving_agg.to_csv('filepath.csv',index=False)

推荐阅读