亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

迭代空白電子表格時如何將占位符插入聚合的df

迭代空白電子表格時如何將占位符插入聚合的df

千萬里不及你 2022-01-18 17:28:13
我正在遍歷位于主目錄中各個文件中的 Excel 電子表格。大多數電子表格如下所示:df = pd.DataFrame({"A": [1, 2, 3],                    "B": [4, 5, 6],                  "C": [7, 8, 9],                  "D": [10, 11, 12],                  "E": [13, 14, 15],                  "F": [16, 17, 18],                  "G": [19, 20, 21]})但是,我的電子表格中有大約 100 個與我填充的電子表格具有相同的名稱和列數,但是,沒有數據存在。它們看起來像這樣:df2 = pd.DataFrame({"A": [],                    "B": [],                  "C": [],                  "D": [],                  "E": [],                  "F": [],                  "G": []})我仍然想“提取”該信息,并為這些空白行插入一個占位符。我的預期結果如下所示:df3 = pd.DataFrame({"A": [1, 2, 3, NaN],                   "B": [4, 5, 6, NaN],                  "C": [7, 8, 9, NaN],                  "D": [10, 11, 12, NaN],                  "E": [13, 14, 15, NaN],                  "F": [16, 17, 18, NaN],                  "G": [19, 20, 21, NaN]})目前,我的代碼沒有使用占位符 (NaN) 填充聚合電子表格。在檢查我的 df 是否為空時,我嘗試 df.fillna 以及附加 NaN,但是,我仍然沒有用我的空電子表格中的 NaN 填充我的聚合 df。這是我到目前為止所寫的:import osimport pandas as pdpd.options.display.max_rows=999import numpyfrom numpy import NaNroot = "my_dir"agg_df = pd.DataFrame()blank_rows = pd.Series([NaN,NaN,NaN,NaN,NaN,NaN,NaN], index=['A', 'B', 'C',                                                'D', 'E',                                                 'F', 'G'])for directory, subdirectory, files in os.walk(root):#     print(directory)    for file in files:        filepath = os.path.join(directory, file)        print(directory)        if file == 'Apples.xlsx':            df_temp = pd.read_excel(filepath, sheet_name = 'Apples')            df_temp['Filepath'] = filepath            if df_temp.empty == True:                df_temp.append(blank_rows, ignore_index = True)                     agg_df = agg_df.append(df_temp)
查看完整描述

1 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

您創建的 blank_rows 不是一行,而是七行。所以我用 None 值創建了一行(NaN 無效)。然后為 agg_df 添加一個空白行,我使用了 concat。


root = ''

agg_df = pd.DataFrame()

blank_rows = pd.DataFrame(pd.Series([None,None,None,None,None,None,None], 

                                    index=['A', 'B', 'C',

                                                'D', 'E', 

                                                'F', 'G'])).transpose()

for directory, subdirectory, files in os.walk(root):

    for file in files:

        filepath = os.path.join(directory, file)

        df_temp = pd.read_excel(filepath, sheet_name = 'Apples')

        blank_rows['filepath'] = filepath

        if file == 'Apples.xlsx':

            if df_temp.empty == True:

                agg_df = pd.concat([agg_df, blank_rows])

結果:


     A      B        C      D       E        F      G     filepath

0   None    None    None    None    None    None    None  my_dir\Apples.xlsx


查看完整回答
反對 回復 2022-01-18
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號