[问题] 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