【问题标题】:Multiple DataFrame to Excel [duplicate]多个DataFrame到Excel [重复]
【发布时间】:2021-05-15 07:07:31
【问题描述】:

如何将多个数据框导出到一个 Excel 工作表。我有 2 个数据框。有时可能超过 2 个数据帧。

cars = {'name': ['Audi','VW'],
    'modell': ["A4","Golf"]
    }

cars2 = {'name': ['BMW','MB'],
    'modell': ["3er","e-class"]
    }

df = pd.DataFrame(cars, columns= ['name', 'modell'])
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()

【问题讨论】:

标签: python dataframe


【解决方案1】:

您的问题不是关于写入 excel(您知道该怎么做),而是关于连接数据帧,您可以为此使用 pandas.concat

在此示例中,我创建了两张表,其中一张数据集垂直连接,另一张数据集水平连接,作为奖励,您知道如何将多张工作表保存到同一个文件中。

cars = {'name': ['Audi','VW'],
    'modell': ["A4","Golf"]
    }

cars2 = {'name': ['BMW','MB'],
    'modell': ["3er","e-class"]
    }
## assuming that all your dataframes have the same set of columns
dataFrames = [pd.DataFrame(d) for d in [cars, cars2]]
with pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter') as writer:
  vertical = pd.concat(dataFrames, axis=0) # if the dataframes have the same columns
  horizontal = pd.concat(dataFrames, axis=1) # if the dataframes have the same indices
  
  vertical.to_excel(writer, sheet_name='Vertically')
  horizontal.to_excel(writer, sheet_name='Horizontally')

【讨论】:

  • 但我只想要一张
  • 对不起,我会更新的
【解决方案2】:

你希望数据框去哪里?

此代码会将它们并排放置在同一个工作表上。

import pandas as pd

cars1 = {'name': ['Audi','VW'],
    'modell': ["A4","Golf"]
    }

cars2 = {'name': ['BMW','MB'],
    'modell': ["3er","e-class"]
    }
all_cars = [cars1, cars2]

writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
startcol = 0

for car in all_cars:
  df = pd.DataFrame(car, columns= ['name', 'modell'])
  df.to_excel(writer, sheet_name='Sheet1', startcol=startcol, index=None)
  startcol += len(df.columns)
writer.save()

【讨论】:

  • 它们应该在另一个下面列出。你知道我该怎么做吗?
  • 如果您希望它们以这种方式显示,您可以使用 startrow 而不是 startcol。
猜你喜欢
  • 1970-01-01
  • 2021-11-21
  • 2021-01-16
  • 2013-07-19
  • 1970-01-01
  • 2020-12-08
  • 2019-11-05
  • 2021-11-25
  • 1970-01-01
相关资源
最近更新 更多