Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以Pandas作为中间人将多个html表导出到Excel_Python_Excel_Pandas_Export_Export To Excel - Fatal编程技术网

Python 以Pandas作为中间人将多个html表导出到Excel

Python 以Pandas作为中间人将多个html表导出到Excel,python,excel,pandas,export,export-to-excel,Python,Excel,Pandas,Export,Export To Excel,我从一个网站上收集了1981-2018年的数据,其中显示了2018年的数据: 如果在上述链接中将2018更改为1981-2018年,则获得剩余数据集 使用Pandas和urlib.request我收集数据如下: url = ['ftp://ftp.cpc.ncep.noaa.gov/htdocs/degree_days/weighted/daily_data/' + \ '{}'.format(i) + '/Population.Heating.txt' for i in range(19

我从一个网站上收集了1981-2018年的数据,其中显示了2018年的数据:

如果在上述链接中将
2018
更改为1981-2018年,则获得剩余数据集

使用Pandasurlib.request我收集数据如下:

url = ['ftp://ftp.cpc.ncep.noaa.gov/htdocs/degree_days/weighted/daily_data/' + \
   '{}'.format(i) + '/Population.Heating.txt' for i in range(1981,2019)]
data_url = [pd.read_csv(url[i], sep=" ", header=None) for i in range(len(url))]
问题

首先,是否有比上述列表更干净、更有效的方法从链接收集数据?第二,如何将整个列表导出到Excel电子表格

然而,我尝试了以下出口方法:;代码仅在2018年导出:

from pandas import ExcelWriter

writer = ExcelWriter('PythonExport.xlsx')
for i in range(len(data_url)):
    data_url[i].to_excel(writer,'Sheet1')
writer.save()

为了解决为什么我没有直接将数据导入Excel的问题:最终,我希望将每年的数据放在一个数据框中,即一列包含地区数据,另一列包含美国本土数据。在尝试构建此数据框架时,在Excel中使用数据似乎比从上面使用列表理解
data\u url
更容易,然后使用数据构建数据框架

以下是一种将数据解析为单个数据帧的方法:

代码: 结果:
这里不清楚的是如何组合数据。只是把它们全部粉碎,放在电子表格的不同标签上,或者什么?许多可能的解决方案通常意味着一个问题过于宽泛。如果您希望每年都在一个单独的数据框中。“你已经在理解中有了这些。”斯蒂芬诺克我正计划把数据放在一个电子表格上。
url = [
    'ftp://ftp.cpc.ncep.noaa.gov/htdocs/degree_days/weighted/daily_data/'
    '{}'.format(i) + '/Population.Heating.txt' for i in range(1981, 2018)]
data_url = [pd.read_csv(url[i], sep="|", skiprows=3, index_col=0).T
            for i in range(len(url))]
df = pd.concat(data_url)

print(df.head())
print(df.tail())
Region     1   2   3   4   5   6   7   8   9  CONUS
19810101  51  45  36  33  24  24  14  22  14     28
19810102  46  42  43  40  23  29  17  22  16     29
19810103  55  50  51  46  26  28  17  23  14     33
19810104  66  59  62  55  27  30  18  23  15     37
19810105  62  56  59  47  34  42  22  24  14     38

Region     1   2   3   4   5   6   7   8   9  CONUS
20171227  53  49  62  64  22  35  28  29  15     37
20171228  59  54  60  57  27  37  28  26  13     38
20171229  59  53  54  54  26  33  23  24  11     35
20171230  57  50  54  62  24  32  19  27  12     34
20171231  59  55  60  68  29  39  27  30  15     40