Pandas插入多个表,并为每个表添加新列



我有一本excel工作簿,里面有36张。每张表都有相同的列——我实际上只需要5列(下面(,但还有很多。每张图纸都遵循以下命名约定YYYY-MM-DD MRR

激活时间激活时间(天(
订阅ID 当前状态MRR

如果我正确理解你的问题,你根本不需要for循环。使用concat函数可以很容易地组合Excel表格数据。只需初始化即可添加其他列。然后,您可以使用逻辑来填充这些附加列的值。

考虑这个代码:

import pandas as pd
excel = 'Total_MRR_ALL.xlsx'
sheets_dict = pd.read_excel(excel, sheet_name=None, usecols="A,B,C,D,E,F,G")
column_names = ["Subscription ID", "Activated At", "Activated For (days)", "Current Status", "Pause Start Date", "Pause End Date", "Pause End Status"]
# combine all sheets to a single dataframe
master = pd.concat(sheets_dict.values())
master = master.set_index("Subscription ID")
# new columns added with initial values. Populate calculated values
master['Jan 2019 MRR'] = 0;
master['Feb 2019 MRR'] = 'a';
master['Mar 2019 MRR'] = '';

# prints the output to csv
master.to_csv("output.csv")