[英]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
使用transpose
和fillna
:
由於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.