簡體   English   中英

為什么我在for循環中進行了一些更改后鍵的值沒有改變

[英]Why the value of the key is not changed after I made some change in the for loop

我有一個字典變量 OutputFrames,我嘗試用 ffill 和 bfill 方法df.fillna(method = 'ffill').fillna(method='bill')填充 NaN。 當我在 for 循環中打印它時,它顯示了正確的結果。 但是當我使用該鍵檢查字典時,它顯示沒有任何變化。 有人知道為什么嗎?

我也試過

chartFrame.fillna(method='ffill', inplace = True).fillna(method='bfill', inlace = True)

因為有一列( SBT )在鍵的值中填充了 none,所以它也不起作用 --- AttributeError: 'NoneType' object has no attribute 'fillna'

你可以從圖片中看到這一點:

在此處輸入圖像描述

當您在 for 循環中執行chartFrame = chartFrame.fillna(method = 'ffill').fillna(method='bill')時,您實際上並沒有更改 OutputFrames 中的OutputFrames 您只是將其分配給變量chartFrame 打印該變量會顯示正確的結果,但不會存儲。

在當前鍵處重新分配幀(首選):

OutputFrames[key] = chartFrame.fillna(method = 'ffill').fillna(method='bfill')

或者使用inplace=True而不鏈接操作。 當您執行就地操作時,dataframe 會就地更改,並且不會返回任何內容。 這基本上會導致None.nafill()導致上述錯誤。

chartFrame.fillna(method='ffill', inplace = True)
chartFrame.fillna(method='bfill', inplace = True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM