如何将多个熊猫数据框保存到Excel

时间:2020-09-28 17:49:54

标签: python pandas

我想用熊猫来提取网络表格内容。

下面是代码:

import pandas as pd
import requests

ids = [1722044,1722045,1722046,1722047]
str = 'http://vip.win007.com/AsianOdds_n.aspx?id={}'
for id in ids:
  url = str.format(id)
  asianodds = pd.read_html(url, header = 0)
  asianodds[0]
  df_NaN = asianodds[0]

#Data cleaning
  asianodds = df_NaN.drop(df_NaN[df_NaN.多盘口 == '多盘口'].index)

#Delete Columns
  asianodds.drop('多盘口', inplace=True, axis=1)
  asianodds.drop('历史资料', inplace=True, axis=1)

# 澳门 data 
  macau_asianodds = asianodds.iloc[0:1]
  asianodds.iloc[0:1].to_excel("c:/logs/test.xls")
  print(macau_asianodds)

预期输出为4条记录。但是,Excel文件只有一条记录。

1 个答案:

答案 0 :(得分:0)

  • 当前,每次asianodds.iloc[0:1].to_excel("c:/logs/test.xls")在循环中运行时,代码都会覆盖文件。数据未附加到文件中。
  • 将所有数据合并到一个数据框中,然后将其保存到Excel。
  • 另请参阅Appending Pandas DataFrame to existing Excel document
ids = [1722044,1722045,1722046,1722047]
str = 'http://vip.win007.com/AsianOdds_n.aspx?id={}'

# add the dataframe for each ids, to a list
df_list = list()

for id in ids:
    url = str.format(id)
    asianodds = pd.read_html(url, header = 0)
    asianodds[0]
    df_NaN = asianodds[0]

    #Data cleaning
    asianodds = df_NaN.drop(df_NaN[df_NaN.多盘口 == '多盘口'].index)

    #Delete Columns
    asianodds.drop('多盘口', inplace=True, axis=1)
    asianodds.drop('历史资料', inplace=True, axis=1)

    # 澳门 data 
    macau_asianodds = asianodds.iloc[0:1]

    # save each dataframe to a list
    df_list.append(asianodds.iloc[0:1])

# combine the dataframes
df = pd.concat(df_list).reset_index(drop=True)

# save dataframe to an excel file
df.to_excel("c:/logs/test.xls", index=False)

display(df)

  博彩公司    初盘    初盘.1   初盘.2    终盘   终盘.1  终盘.2
0   澳门     0.94      半球     0.92   1.02     半球     0.84
1   澳门     0.96  平手/半球    0.90   0.88      平手    0.98
2   澳门     0.88      半球     0.98   0.90     半球    0.96
3   澳门     0.94   受让一球    0.92   1.08  受让一球    0.78