[問題] pandas處理excel問題

作者: Kuba4ma (哦吼)   2020-08-19 21:44:16
import pandas as pd
df=pd.ExcelFile('test2.xlsx')
df=pd.read_excel(df)
index=len(df.index)
columns=df.columns
for col in columns:
for i in range(index):
if df[col][i]=='NaN':
df[col][i]=df[col][i-1]
https://i.imgur.com/4Lals7K.png
目前在做資料分析
我想要把excel中的遺失值用上一個來代替
但是如圖片中結果顯示
2008-10-24 - MaxTemp 那欄的值依然是NaN
請問是哪裡出錯了嗎
謝謝
作者: chen1i6c04 (輕踏水無痕)   2020-08-19 22:09:00
NaN不是字串,而且NaN也不等於NaN
作者: Kuba4ma (哦吼)   2020-08-19 22:14:00
剛剛改成 if df[col][i]==float('nan'): 也是不行....
作者: TitanEric (泰坦)   2020-08-19 23:03:00
先看那欄型態是什麼 還有有其他replace的方法 你這樣會很慢fillna搭配method參數看看
作者: moodoa3583 (金牌台灣啤酒)   2020-08-20 00:09:00
如果要用你的邏輯,可以用.isnull()來判斷
作者: keepingJBJ (keep)   2020-08-20 00:46:00
試試if df[col][i] == df[col][i]:Nan不等於NaN結果回傳False,可以判定是否nan
作者: kikicheng (ohhiyo123)   2020-08-20 06:29:00
可以改成 if pd.isna(df[col][i]) == True:
作者: Kuba4ma (哦吼)   2020-08-20 13:33:00
謝謝各位 我用T大的方式解決了
作者: gene50814 (genechen)   2020-08-20 20:37:00
試試ffill()

Links booklink

Contact Us: admin [ a t ] ucptt.com