[問題] pandas刪除空值

作者: MAGICXX (逢甲阿法)   2020-04-24 19:10:47
大家晚安大家好
我現在有一些資料 他可能含有空值
我想要把他的空值給刪掉(一整行或者一整列)
請問該如何處理比較對?
這邊是我的資料
他在時序資料內 會有一些空值
https://reurl.cc/5lONv6
因為檔案眾多 所以我用迴圈下去跑
a=listdir('./out/')
for i in a:
print i
b=pd.read_csv('./out/'+i,error_bad_lines=False)
b.dropna(axis='columns',how='any',inplace=True,)
b.dropna(axis='index',how='any',inplace=True,)
b.to_csv('./in/'+i,index=False,mode='a',encoding='utf8')
雖然沒報錯 但是他出來的檔案空值的行跟列都還存在
我現在需要他的空值的行列都刪除 請問該怎麼處理才對?
謝謝
作者: moodoa3583 (金牌台灣啤酒)   2020-04-24 19:18:00
.dropna()噢噢我看到你在迴圈內有dropna了
作者: MAGICXX (逢甲阿法)   2020-04-24 20:31:00
這個函數會刪掉整欄 還是只會刪值啊? index也會刪掉嗎?
作者: moodoa3583 (金牌台灣啤酒)   2020-04-24 21:18:00
整欄/列都會刪掉,看你axis是0還是1,整條row刪除後index自然也會消失
作者: MAGICXX (逢甲阿法)   2020-04-25 01:37:00
可是我這樣程式跑過 半行都沒刪掉耶....我確定裡面至少一行(ROWS)跟一列(COLUMNS)都有空格結果都沒有刪掉...
作者: dary856974 (dary)   2020-04-25 03:39:00
b= b.dropna(axis='columns',how='any',inplace=True,)b=b.dropna(axis='index',how='any',inplace=True,)
作者: weiyanchen (wychen)   2020-04-25 03:46:00
下載你的檔案試跑看起來是會刪掉空值的才是?https://imgur.com/a/THAoVMU不過若row有空值看起來會全刪掉(留下的row跟表頭是一樣的,沒有意義)但若依column來刪的話,也只會剩下column date這是你想要的結果嗎?但若是你先drop column #7, #8, #16, #25再去dropna看起來會比較合理(單純依info猜測)https://imgur.com/lkN8y2n類似像上圖
作者: Jeffrey11061 (Jeff)   2020-04-25 12:36:00
如果function不是in-place的你要assign呀~
作者: MAGICXX (逢甲阿法)   2020-04-25 15:55:00
感謝各位大大 其實重點是不要那幾排的值 比如說2/30 2/29的 或者是欄位根本沒有值 缺一整排的空值的...結果我找到問題讓程式跑完 剩第一欄的表頭 可以請問各位大大還有辦法把那些空值刪除嗎?
作者: dary856974 (dary)   2020-04-25 18:39:00
df = df.loc[:, df.columns.notnull()] 你是這個意思嗎?另外dropna一個就可以了,主要是要assign正常的話應該是drop index的就好,再來對col name filter,不知道你是不是要這樣

Links booklink

Contact Us: admin [ a t ] ucptt.com