第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Pandas - 循環(huán)目錄 read_excel 使用工作簿月份將日期值添加到數(shù)據(jù)框

Pandas - 循環(huán)目錄 read_excel 使用工作簿月份將日期值添加到數(shù)據(jù)框

qq_笑_17 2023-11-09 21:40:19
我有一個(gè)包含 Excel 文件的目錄,我正在循環(huán)遍歷這些文件并將每個(gè)文件中的一張表讀取到 Pandas 數(shù)據(jù)框中。每個(gè)文件包含一個(gè)月的數(shù)據(jù)(示例名稱=“Savings January 2019.xlsx”)。Excel工作表中沒(méi)有日期列,因此我想在數(shù)據(jù)框中添加“日期”列,并按工作簿名稱中的月份和年份讀取每個(gè)文件(例如“2019年1月”)和添加“MM-DD-YYYY”(例如“01-01-2019”)作為讀入的每行的日期值。下面是我的工作循環(huán),讀取 12 個(gè)沒(méi)有日期的 Excel 工作簿,僅生成所有 12 個(gè)月的總計(jì)。我需要日期,以便可以按月可視化數(shù)據(jù)。df_total = pd.DataFrame()for file in files:        # loop through Excel files (each file adds date value based on file name)    if file.endswith('.xlsx'):        excel_file = pd.ExcelFile(file)        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)當(dāng)前 df:     State        Group      Value0   Illinois    000000130   470.931   Illinois    000000130   948.332   Illinois    000000784   3498.423   Illinois    000000784   16808.164   Illinois    000002077   7.00需要df:     State        Group        Date           Value0   Illinois    000000130   01-01-2019        470.931   Illinois    000000130   01-01-2019        948.332   Illinois    000000784   01-01-2019       3498.423   Illinois    000000784   02-01-2019       6808.164   Illinois    000002077   02-01-2019          7.00我做了一些研究,認(rèn)為這就像創(chuàng)建列然后添加日期值,但無(wú)法弄清楚如何解析文件名來(lái)執(zhí)行此操作,并且我顯然是這里的初學(xué)者。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'] = #if excel_file contains 'January 2019', then df_total['Date'] == '01-01-2019
查看完整描述

2 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

您的概念是正確的,您的代碼也即將完成。您現(xiàn)在需要添加的只是日期解析。


您可以使用Python的strptime()來(lái)解析文件名中的日期。


https://docs.python.org/3/library/datetime.html


例如,如果您的文件名類似于“Savings January 2019.xlsx”,那么您可以按如下方式解析它。請(qǐng)注意,這不是解析字符串的唯一方法,還有其他幾種可以使用此方法的變體。


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 日期字符串格式的一個(gè)很好的概述:https://strftime.org/


獲得日期對(duì)象后,您只需將其添加到數(shù)據(jù)框中即可。


df['Date'] = date_object


查看完整回答
反對(duì) 回復(fù) 2023-11-09
?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

這是最終的代碼。請(qǐng)注意,文件名實(shí)際上更長(zhǎng),并且我遺漏了一些公司信息,因此 .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


查看完整回答
反對(duì) 回復(fù) 2023-11-09
  • 2 回答
  • 0 關(guān)注
  • 233 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)