2 回答
TA贡献2037条经验 获得超6个赞
您的概念是正确的,您的代码也即将完成。您现在需要添加的只是日期解析。
您可以使用Python的strptime()来解析文件名中的日期。
https://docs.python.org/3/library/datetime.html
例如,如果您的文件名类似于“Savings January 2019.xlsx”,那么您可以按如下方式解析它。请注意,这不是解析字符串的唯一方法,还有其他几种可以使用此方法的变体。
from datetime import datetime
string = 'Savings January 2019.xlsx'
month_str = string.split(' ')[1]
year_str = string.split(' ')[2].split('.')[0]
date_object = datetime.strptime(month_str + year_str, "%B%Y")
以下是 python 日期字符串格式的一个很好的概述:https://strftime.org/
获得日期对象后,您只需将其添加到数据框中即可。
df['Date'] = date_object
TA贡献1854条经验 获得超8个赞
这是最终的代码。请注意,文件名实际上更长,并且我遗漏了一些公司信息,因此 .split 中的更改
from datetime import datetime
#create empty dataframe
df_total = pd.DataFrame()
# loop through Excel files
for file in files:
if file.endswith('.xlsx'):
excel_file = pd.ExcelFile(file)
# parse excel filename to take month and year and save as date object for Date column
month_str = file.split(' ')[4]
year_str = file.split(' ')[5].split('.')[0]
date_object = datetime.strptime(month_str + year_str, "%B%Y")
# loop excel sheets and add "Date" column, populating with date from parsed filename
sheets = excel_file.sheet_names
for sheet in sheets: # loop through sheets inside an Excel file
df = excel_file.parse(sheet_name = "Group Savings")
df_total = df_total.append(df)
df_total['Date'] = date_object
添加回答
举报