Python 使用pd.ExcelWriter将多个数据帧写入单个Excel工作簿以进行VBA操作

Python 使用pd.ExcelWriter将多个数据帧写入单个Excel工作簿以进行VBA操作,python,pandas,dataframe,Python,Pandas,Dataframe,我有60多个数据帧要写入excel模板。我的目的是在导出所有df后,通过vba将所有这些内容粘贴到各种命名范围 excel_writer = pd.ExcelWriter('test.xlsx') df['state'].value_counts().to_excel(excel_writer, sheet_name='Sheet1', startrow=5, startcol=0, na_rep=0, header=True, index=True, merge_cells= True) 这

我有60多个数据帧要写入excel模板。我的目的是在导出所有df后,通过vba将所有这些内容粘贴到各种命名范围

excel_writer = pd.ExcelWriter('test.xlsx')
df['state'].value_counts().to_excel(excel_writer, sheet_name='Sheet1', startrow=5, startcol=0, na_rep=0, header=True, index=True, merge_cells= True)
这和预期的一样,但是当我想添加以下两个df时,我得到了AttributeErrors

df_Shape = df.shape[0]
display(df_Shape)
df_Shape.to_excel(excel_writer, sheet_name='Sheet1', startrow=0, startcol=0, na_rep=0, header=True, index=True, merge_cells= True)

4802
AttributeError: 'int' object has no attribute 'to_excel'

df_Start_Date = df['rfq_create_date_time'].min()
display(df_Start_Date)
df_Start_Date.to_excel(excel_writer, sheet_name='Sheet1', startrow=3, startcol=0, na_rep=0, header=True, index=True, merge_cells= True)

Timestamp('2018-05-01 06:55:25')
AttributeError: 'Timestamp' object has no attribute 'to_excel'

excel_writer.save()

使用时,单细胞数据帧是否需要额外工作。to_excel

df_Shape
是一种
df

df_Start_Date
是一个时间

它们不是
pd.DataFrame
对象,因此它们没有方法
。\u excel

编辑
您可以创建具有必要统计信息的新数据框,并将其写入同一工作表:

stats = [{
    "len": df.shape[0],
    "min_time": df["rfq_create_date_time"].min()
}, ] # List of dictionaries, to have a row, not column

with pd.ExcelWriter(path) as excel_writer:
    pd.DataFrame(stats).to_excel(excel_writer, index=False, sheet_name='Sheet1', startrow=0)
    df.to_excel(excel_writer, startrow=3, sheet_name='Sheet1'))

df_形
df

df_Start_Date
是一个时间

它们不是
pd.DataFrame
对象,因此它们没有方法
。\u excel

编辑
您可以创建具有必要统计信息的新数据框,并将其写入同一工作表:

stats = [{
    "len": df.shape[0],
    "min_time": df["rfq_create_date_time"].min()
}, ] # List of dictionaries, to have a row, not column

with pd.ExcelWriter(path) as excel_writer:
    pd.DataFrame(stats).to_excel(excel_writer, index=False, sheet_name='Sheet1', startrow=0)
    df.to_excel(excel_writer, startrow=3, sheet_name='Sheet1'))

是否有其他方法可以获取df中的行数和最小/最大值ehich是对象?相当多的导出是单个值,它们是df.count(),.mean的结果(0 etc@PeterLucas我已经添加了可能对您有帮助的代码!@Kopytok我遇到了一个路径错误,但我会解决这个问题。如果我只写列表,输出值是否有其他方法可以获取df中的行数和最小/最大值ehich是对象?相当多的导出是单个值,这是df.count()的结果。mean(0 etc@PeterLucas我已经添加了可能对您有帮助的代码!@Kopytok我遇到了一个路径错误,但我可以找到它。如果我只写列表,就会输出值