簡體   English   中英

Python-遍歷行和列

[英]Python - iterate over rows and columns

首先,請原諒我的技能。 我試圖進入Python,我只是為了好玩而學習,也就是說,我不是專業地使用它,老實說,我很糟糕。 我的問題可能會有基本錯誤。

無論如何,我試圖遍歷數據框的行和列。 我想檢查列的值(第一個除外)是否為NaN。 如果是,則應將其更改為第一個的值。

import math

for index, row in rawdata3.iterrows():
    test = row[0]
    for column in row:
        if math.isnan(row.loc[column]) == True:
            row.loc[column] = test

我得到的錯誤是這樣的:

標簽[4.0]不在[列]中

我也有其他錯誤,但代碼略有不同,例如:

無法使用這些索引器類float對類pandas.core.indexes.base.Index進行標簽索引

你能幫我一下嗎?

提前致謝!

干杯。

df是:

   A    B    C
0  5  NaN  2.0
1  6  5.0  NaN
2  9  NaN  NaN
3  2  4.0  6.0

使用transposefillna

由於fillna“ NotImplementedEerror” NotImplementedError:當前只能用dict / Series逐列df.fillna(value=df.A, axis=1)無法正常工作。 因此,我們使用:

df.T.fillna(df.A).T

輸出:

     A    B    C
0  5.0  5.0  2.0
1  6.0  5.0  6.0
2  9.0  9.0  9.0
3  2.0  4.0  6.0

我不知道是否有更好的方法,但是效果很好:

for i in df.columns:
    df.loc[df[i].isnull(), i] = df.loc[df[i].isnull(), 'A']

輸出:

   A    B    C
0  5  5.0  2.0
1  6  5.0  6.0
2  9  9.0  9.0
3  2  4.0  6.0

暫無
暫無

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

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