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

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

索引未重置

索引未重置

冉冉說 2021-06-20 11:29:09
我有一個列表理解,并在其中調用一個函數,并傳遞給它兩個參數。在該函數中,我有另一個列表推導式,它為我提供了一個 DataFrame 列表。我必須清理每個 DataFrame 中的數據,因此我使用 for 循環遍歷列表中的每個 DataFrame。在每次迭代中,我會做任何我需要做的事情,其中一件事是重置每個 DataFrame 的索引。我在函數之外放置了一個打印語句,只是為了確保我按照我需要的方式獲取所有內容,但不會重置索引。為什么不重置?def function(xls, a_list):    # a_list is a list of strings    df_list = [pd.read_excel(xls, sheet_name=a) for a in a_list]    for df in df_list:        df.dropna(how='all', inplace=True)        df['Meal'] = df['Meal'].fillna(method='ffill')        # RIGHT HERE         df = df.reset_index(drop=True)    return df_list# ------------------------------------list_of_df = [function(xls, monthly_sheets) for xls, monthly_sheets in zip(xls_files, sheet_names) if monthly_sheets]例如,這就是我得到的:        Col1        Col20        a            f1        b            g4        c            h7        d            i8        e            j我想要的是這個:        Col1        Col20        a            f1        b            g2        c            h3        d            i4        e            j我錯過了什么?
查看完整描述

1 回答

?
holdtom

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

代替

df = df.reset_index(drop=True)

df.reset_index(drop=True, inplace=True)

問題是如果isdf.reset_index() 返回一個值,并且您已將該值分配給,但是您沒有對. 您正在使用數據框列表,該列表不包括您剛剛創建的新本地。inplaceFalsedfdf df

另一種選擇是將新存儲df在您的df_list. 不過,這對我來說感覺像是更多的工作,因為 Pandas 已經支持大部分操作的就地參數。


查看完整回答
反對 回復 2021-06-22
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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