有没有办法从 pandas 中的日期时间列设置 weeknumber/year 格式
Is there a way to set weeknumber/year format from a datetime column in pandas
'''
'我正在尝试以这样的日期时间格式设置一列,并以周 number/year 格式创建一个新列 Week_No,但是当我将其写入 excel 时,它会将其转换为 mm/year格式'
datecolumn = ["Date"]
df_2021 = pd.read_csv("C:/Users/Lenovo/Downloads/2021.csv", sep = ";", parse_dates=datecolumn).iloc[:-7]
df_2022 = pd.read_csv("C:/Users/Lenovo/Downloads/2022.csv", sep = ";", parse_dates=datecolumn).iloc[:-7]
df_combined = pd.concat([df_2021,df_2022],ignore_index=False)
df_combined["Date_New"] = pd.to_datetime(df_combined["Date_New"], format='%d/%m/%Y' )
WeekNo = []
def getWeekYear(isodate):
year = isoDate[0]
week = isoDate[1]
# print(f"{week}-{year}")
cellValue = f"{week}-{year}"
# df_combined["Week_No"] = cellValue
# WeekNo = []
WeekNo.append(cellValue)
for value in df_combined["Date_New"]:
day = int(value[:2])
month = int(value[3:5])
year = int(value[6:])
isoDate = date(year, month, day).isocalendar()
getWeekYear(isoDate)
df_combined["Week_No"]= WeekNo
'''
'Also I need the Week_No to be in **Number ** format when I write it in excel'
如果只在写入excel时出现这种情况,可能是因为excel单元格的类型设置为日期,默认情况下,单元格的内容会发生变化excel.
中定义的日期格式
我建议将 excel 单元格的类型设置为 text 而不是 date,因此 excel 不覆盖内容。
否则,您可以更改 excel sheet 中定义的日期格式,因此定义的格式为 周 number/year。
''' '我正在尝试以这样的日期时间格式设置一列,并以周 number/year 格式创建一个新列 Week_No,但是当我将其写入 excel 时,它会将其转换为 mm/year格式'
datecolumn = ["Date"]
df_2021 = pd.read_csv("C:/Users/Lenovo/Downloads/2021.csv", sep = ";", parse_dates=datecolumn).iloc[:-7]
df_2022 = pd.read_csv("C:/Users/Lenovo/Downloads/2022.csv", sep = ";", parse_dates=datecolumn).iloc[:-7]
df_combined = pd.concat([df_2021,df_2022],ignore_index=False)
df_combined["Date_New"] = pd.to_datetime(df_combined["Date_New"], format='%d/%m/%Y' )
WeekNo = []
def getWeekYear(isodate):
year = isoDate[0]
week = isoDate[1]
# print(f"{week}-{year}")
cellValue = f"{week}-{year}"
# df_combined["Week_No"] = cellValue
# WeekNo = []
WeekNo.append(cellValue)
for value in df_combined["Date_New"]:
day = int(value[:2])
month = int(value[3:5])
year = int(value[6:])
isoDate = date(year, month, day).isocalendar()
getWeekYear(isoDate)
df_combined["Week_No"]= WeekNo
''' 'Also I need the Week_No to be in **Number ** format when I write it in excel'
如果只在写入excel时出现这种情况,可能是因为excel单元格的类型设置为日期,默认情况下,单元格的内容会发生变化excel.
中定义的日期格式我建议将 excel 单元格的类型设置为 text 而不是 date,因此 excel 不覆盖内容。
否则,您可以更改 excel sheet 中定义的日期格式,因此定义的格式为 周 number/year。