【发布时间】:2019-12-04 18:32:58
【问题描述】:
我有 3 年的 excel 每周文件,格式为“2018-01-01 至 2018-01-07.xlsx 的卡车”、“2018-01-08 至 2018-01-14.xlsx 的卡车”和很快。我需要从每个文件中提取 4 个包含总计的单元格,并构建一个数据框,其中包含每周值在右侧添加列的值。
我尝试了一个 while 循环来清理循环中的每个 excel,但不知何故,我遇到了初学者问题,需要在数据框的右侧附加一个新列。
预期结果将是包含以下数据的 Dataframe: 列:第 1 周、第 2 周...第 N 周(或开始日期) 行:Dock 1、Dock2、Dock 3、Dock 4
[编辑] 我得到的结果是 Dock 1、Dock 2、Dock 3、Dock 4 的索引是正确的。 在那之后,两列都包含最后一个文件中的值。
import pandas as pd
from datetime import date, timedelta
start_date = date(2018, 1, 1)
end_date1 = date(2018, 1, 7)
end_date = date(2018, 1, 14)
delta = timedelta(days=7)
while start_date <= end_date:
tr = pd.read_excel('trucks from {} to {}.xlsx'.format(start_date, end_date1))
# I clean up the columns
tr = tr.drop('Unnamed: 0', 1)
tr = tr.drop('Unnamed: 1', 1)
tr = tr.drop('Unnamed: 2', 1)
# I clean up the rows
tr = tr.drop(tr.loc[:, 'Unnamed: 4':'Unnamed: 29'].head(0).columns, axis=1)
tr = tr.loc[[34, 51, 58, 66], :]
# I rename the rows of interest
tr = tr.rename(index={34: 'Dock 1', 51: 'Dock 2', 58: 'Dock 3', 66: 'Dock 4'})
# Closing the loop and adding a new column at the end
tr[start_date] = tr
tr.append(tr)
start_date += delta
end_date1 += delta
【问题讨论】:
-
你现在得到的结果是什么?
-
感谢您的提示,第一次发帖,我添加了一个编辑。
标签: python pandas loops append concat