[問題] pandas刪除空值

看板Python作者 (逢甲阿法)時間5年前 (2020/04/24 19:10), 5年前編輯推噓7(7024)
留言31則, 5人參與, 5年前最新討論串1/1
大家晚安大家好 我現在有一些資料 他可能含有空值 我想要把他的空值給刪掉(一整行或者一整列) 請問該如何處理比較對? 這邊是我的資料 他在時序資料內 會有一些空值 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') 雖然沒報錯 但是他出來的檔案空值的行跟列都還存在 我現在需要他的空值的行列都刪除 請問該怎麼處理才對? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.134.51.64 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1587726650.A.8EC.html ※ 編輯: MAGICXX (140.134.51.64 臺灣), 04/24/2020 19:11:23

04/24 19:18, 5年前 , 1F
.dropna()
04/24 19:18, 1F

04/24 19:20, 5年前 , 2F
噢噢我看到你在迴圈內有dropna了
04/24 19:20, 2F

04/24 20:31, 5年前 , 3F
這個函數會刪掉整欄 還是只會刪值啊? index也會刪掉嗎?
04/24 20:31, 3F

04/24 21:18, 5年前 , 4F
整欄/列都會刪掉,看你axis是0還是1,整條row刪除後in
04/24 21:18, 4F

04/24 21:18, 5年前 , 5F
dex自然也會消失
04/24 21:18, 5F

04/25 01:37, 5年前 , 6F
可是我這樣程式跑過 半行都沒刪掉耶....
04/25 01:37, 6F

04/25 01:38, 5年前 , 7F
我確定裡面至少一行(ROWS)跟一列(COLUMNS)都有空格
04/25 01:38, 7F

04/25 01:38, 5年前 , 8F
結果都沒有刪掉...
04/25 01:38, 8F

04/25 03:39, 5年前 , 9F
b= b.dropna(axis='columns',how='any',inplace=True,
04/25 03:39, 9F

04/25 03:39, 5年前 , 10F
)
04/25 03:39, 10F

04/25 03:39, 5年前 , 11F
b=
04/25 03:39, 11F

04/25 03:39, 5年前 , 12F
b.dropna(axis='index',how='any',inplace=True,)
04/25 03:39, 12F

04/25 03:46, 5年前 , 13F
下載你的檔案試跑看起來是會刪掉空值的才是?
04/25 03:46, 13F

04/25 03:46, 5年前 , 14F

04/25 03:48, 5年前 , 15F
不過若row有空值看起來會全刪掉
04/25 03:48, 15F

04/25 03:49, 5年前 , 16F
(留下的row跟表頭是一樣的,沒有意義)
04/25 03:49, 16F

04/25 03:50, 5年前 , 17F
但若依column來刪的話,也只會剩下column date
04/25 03:50, 17F

04/25 03:50, 5年前 , 18F
這是你想要的結果嗎?
04/25 03:50, 18F

04/25 03:52, 5年前 , 19F
但若是你先drop column #7, #8, #16, #25
04/25 03:52, 19F

04/25 03:53, 5年前 , 20F
再去dropna看起來會比較合理(單純依info猜測)
04/25 03:53, 20F

04/25 03:57, 5年前 , 21F

04/25 03:58, 5年前 , 22F
類似像上圖
04/25 03:58, 22F

04/25 12:36, 5年前 , 23F
如果function不是in-place的你要assign呀~
04/25 12:36, 23F

04/25 15:55, 5年前 , 24F
感謝各位大大 其實重點是不要那幾排的值 比如說2/30 2/29
04/25 15:55, 24F

04/25 15:55, 5年前 , 25F
的 或者是欄位根本沒有值 缺一整排的空值的...
04/25 15:55, 25F

04/25 15:56, 5年前 , 26F
結果我找到問題讓程式跑完 剩第一欄的表頭 可以請問各位
04/25 15:56, 26F

04/25 15:56, 5年前 , 27F
大大還有辦法把那些空值刪除嗎?
04/25 15:56, 27F

04/25 18:39, 5年前 , 28F
df = df.loc[:, df.columns.notnull()] 你是這個意思
04/25 18:39, 28F

04/25 18:39, 5年前 , 29F
嗎?另外dropna一個就可以了,主要是要assign
04/25 18:39, 29F

04/25 18:46, 5年前 , 30F
正常的話應該是drop index的就好,再來對col name filt
04/25 18:46, 30F

04/25 18:46, 5年前 , 31F
er,不知道你是不是要這樣
04/25 18:46, 31F
文章代碼(AID): #1UeiawZi (Python)
文章代碼(AID): #1UeiawZi (Python)