作者MAGICXX (逢甲阿法)
看板Python
標題[問題] pandas刪除空值
時間Fri Apr 24 19:10:47 2020
大家晚安大家好
我現在有一些資料 他可能含有空值
我想要把他的空值給刪掉(一整行或者一整列)
請問該如何處理比較對?
這邊是我的資料
他在時序資料內 會有一些空值
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://webptt.com/m.aspx?n=bbs/Python/M.1587726650.A.8EC.html
※ 編輯: MAGICXX (140.134.51.64 臺灣), 04/24/2020 19:11:23
1F:推 moodoa3583: .dropna() 04/24 19:18
2F:推 moodoa3583: 噢噢我看到你在迴圈內有dropna了 04/24 19:20
3F:→ MAGICXX: 這個函數會刪掉整欄 還是只會刪值啊? index也會刪掉嗎? 04/24 20:31
4F:推 moodoa3583: 整欄/列都會刪掉,看你axis是0還是1,整條row刪除後in 04/24 21:18
5F:→ moodoa3583: dex自然也會消失 04/24 21:18
6F:→ MAGICXX: 可是我這樣程式跑過 半行都沒刪掉耶.... 04/25 01:37
7F:→ MAGICXX: 我確定裡面至少一行(ROWS)跟一列(COLUMNS)都有空格 04/25 01:38
8F:→ MAGICXX: 結果都沒有刪掉... 04/25 01:38
9F:推 dary856974: b= b.dropna(axis='columns',how='any',inplace=True, 04/25 03:39
10F:→ dary856974: ) 04/25 03:39
11F:→ dary856974: b= 04/25 03:39
12F:→ dary856974: b.dropna(axis='index',how='any',inplace=True,) 04/25 03:39
13F:→ weiyanchen: 下載你的檔案試跑看起來是會刪掉空值的才是? 04/25 03:46
15F:→ weiyanchen: 不過若row有空值看起來會全刪掉 04/25 03:48
16F:→ weiyanchen: (留下的row跟表頭是一樣的,沒有意義) 04/25 03:49
17F:→ weiyanchen: 但若依column來刪的話,也只會剩下column date 04/25 03:50
18F:→ weiyanchen: 這是你想要的結果嗎? 04/25 03:50
19F:→ weiyanchen: 但若是你先drop column #7, #8, #16, #25 04/25 03:52
20F:→ weiyanchen: 再去dropna看起來會比較合理(單純依info猜測) 04/25 03:53
22F:→ weiyanchen: 類似像上圖 04/25 03:58
23F:推 Jeffrey11061: 如果function不是in-place的你要assign呀~ 04/25 12:36
24F:→ MAGICXX: 感謝各位大大 其實重點是不要那幾排的值 比如說2/30 2/29 04/25 15:55
25F:→ MAGICXX: 的 或者是欄位根本沒有值 缺一整排的空值的... 04/25 15:55
26F:→ MAGICXX: 結果我找到問題讓程式跑完 剩第一欄的表頭 可以請問各位 04/25 15:56
27F:→ MAGICXX: 大大還有辦法把那些空值刪除嗎? 04/25 15:56
28F:推 dary856974: df = df.loc[:, df.columns.notnull()] 你是這個意思 04/25 18:39
29F:→ dary856974: 嗎?另外dropna一個就可以了,主要是要assign 04/25 18:39
30F:推 dary856974: 正常的話應該是drop index的就好,再來對col name filt 04/25 18:46
31F:→ dary856974: er,不知道你是不是要這樣 04/25 18:46