Python 使用pandas从excel中的给定日期列计算月和周,并附加到同一工作表中的另一列
我正在使用pandas程序,在该程序中,我从其他excel工作表中获取行,并将它们附加到主文件中:Python 使用pandas从excel中的给定日期列计算月和周,并附加到同一工作表中的另一列,python,excel,pandas,Python,Excel,Pandas,我正在使用pandas程序,在该程序中,我从其他excel工作表中获取行,并将它们附加到主文件中: import pandas as pd from openpyxl import load_workbook #reading all three ticket excel sheets df1 = pd.read_excel("sheet a.xlsx") df2 = pd.read_excel("sheet b.xlsx") df3 = pd.read
import pandas as pd
from openpyxl import load_workbook
#reading all three ticket excel sheets
df1 = pd.read_excel("sheet a.xlsx")
df2 = pd.read_excel("sheet b.xlsx")
df3 = pd.read_excel("sheet c.xlsx")
#Creating Panadas Excel writer using xlsxwriter as engine
writer = pd.ExcelWriter(r"main_excel.xlsx", engine = "openpyxl")
writer.book = load_workbook(r"main_excel.xlsx")
sheets = writer.book.sheetnames
reader1 = pd.read_excel(r"main_excel.xlsx", "sheet a")
reader2 = pd.read_excel(r"main_excel.xlsx", "sheet b")
reader3 = pd.read_excel(r"main_excel.xlsx", "sheet c")
df1.to_excel(writer, sheet_name =sheets[0], index = False, header = False,startrow=len(reader1)+1)
df2.to_excel(writer, sheet_name =sheets[2], index = False, header = False,startrow=len(reader2)+1)
df3.to_excel(writer, sheet_name =sheets[4], index = False, header = False,startrow=len(reader3)+1)
writer.save()
writer.close()
将数据写入excel文件后,我必须根据数据中的日期计算月份和周数,并填写缺失的列
每周都会追加数据,因此我希望将数据追加到预先存在的列中
有没有办法不用在excel表格中写公式就可以做到这一点?通过在程序中对其进行编码?您可以使用以下代码转换日期列:
df['Opened'] = pd.to_datetime(df['Opened'])
然后,您可以使用以下命令获取其他列:
df['Month'] = df['Opened'].dt.month_name()
df['Week'] = df['Opened'].dt.week
这是可行的,但是我如何在不覆盖的情况下将其附加到列中?如果您不想覆盖月份和年份列中已经存在的内容,请使用筛选器将其删除。您可以执行
df2=df.loc[df['Month'].isna()]
,df=df.loc[~df['Month'].isna()]
将它们分开,然后df=pd.concat([df,df2])
。您可以在concat之前将答案中的代码应用于df2。