簡體   English   中英

Python:for 循環中的索引不增加

[英]Python: Index not increasing in for-loop

嘗試遍歷 df 中的列,如果第 i 個單元格值中有 NaN,我想用列表“l”中的第 j 個元素替換該 NaN。

所以當 j=0 並且我們啟動循環時,在 i=12 時,有一個 NaN,這個 NaN 被替換為 l1[0]。 下一輪 j=1,在 i = 21 處是列中的下一個 NaN,我們將其替換為 l[1],依此類推。

我嘗試打印 i 和 j 索引,但它永遠不會轉到下一個 j 索引,因此它用元素 l[0] 替換了列中的所有 NaN。 因此,每次將 NaN 值替換為所討論的 j 時,j 都不會增加。

有什么想法嗎? 感謝幫助!

l = [i for i in range(0,11)]
data = {'column': [1,2,3,4,5,6,7,8,9,10,np.nan, np.nan, np.nan, 11,12,13]}
df = pd.DataFrame(data)

for j in range(len(l)):
    for i in range(len(df["column"])):
            if pd.isnull(df["column"].iloc[i]):
                df.at[i,"column"] = l[j]
                print(f"i, j = {i, j}")

我打印的每一輪我都看到 i 增加但 j 等於 0。注意:列長度大於我創建的列表的長度。

試試.fillna

df["column_name"] = df["column_name"].fillna(df["column_name"].isnull().cumsum().apply(lambda x: l[x]))

或者使用.loc

df.loc[df["column_name"].isnull(),"column_name"] = l[:df["column_name"].isnull().sum()]

暫無
暫無

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

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