作者yshihyu (yshihyu)
看板Python
标题[问题] pandas 使用dropna 无法删除nan列
时间Sat Sep 5 06:42:41 2020
想删除pandas 中的所有 nan 列栏位,
使用用 data.dropna(axis=1,how='all') 还是无法删除掉
请问这是什麽原因?
程式码网址如下
https://pastebin.com/v1qmebKz
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.104.29.202 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1599259364.A.E36.html
※ 编辑: yshihyu (112.104.29.202 台湾), 09/05/2020 06:45:22
1F:→ gmccntzx1: 你可以先去查一下 how='all' or 'any' 的差别 09/05 07:12
2F:→ gmccntzx1: 再补一点:注意有没有设定 inplace=True 09/05 07:17
3F:→ yshihyu: any是行列全部只要有包含nan 都移除, inplace=True刚试 09/05 07:27
4F:→ yshihyu: 还是无法删除掉nan 栏位 09/05 07:28
5F:→ gmccntzx1: 你可以描述一下你最後想要得到的结果长什麽样子吗?是 09/05 08:39
6F:→ gmccntzx1: 只要一行资料中有一栏资料是 NA 就把那行资料 drop 掉 09/05 08:39
7F:→ gmccntzx1: ,还是怎麽样的?如果是的话,照理说我上面的做法就可 09/05 08:39
8F:→ gmccntzx1: 以了。如果不是,那你至少简单的描述一下你预期处理前 09/05 08:39
9F:→ gmccntzx1: 与处理後想看到的资料长什麽样子给大家看看,省得双方 09/05 08:39
10F:→ gmccntzx1: 还要等待回覆和猜测你的想法是什麽 09/05 08:39
11F:→ yshihyu: 我是想把栏位中有 NAN 那列删除掉 09/05 08:40
12F:→ yshihyu: result = data.dropna() ... 我刚刚改这样就可以 09/05 08:41
13F:→ yshihyu: 但我不知道为什麽原因~ 09/05 08:41
14F:→ yshihyu: 这资料原本有949笔...有一列中有 NAN , 我希望删除NAN那 09/05 08:41
15F:→ yshihyu: 列.. 09/05 08:42
16F:→ gmccntzx1: 因为你说的「删掉 nan 栏位」这句话的意思,我理解的 09/05 08:48
17F:→ gmccntzx1: 是「把该行里是 nan 的那个栏位删掉,只保留其他有资 09/05 08:48
18F:→ gmccntzx1: 料的栏位」。如果是这样的话,这种操作对於这种 table 09/05 08:48
19F:→ gmccntzx1: 形式的资料是不合理的,因为这就代表处理完後,各行 09/05 08:48
20F:→ gmccntzx1: 资料的栏位数量会不同。 09/05 08:48
21F:→ gmccntzx1: 因为 dropna 预设回传一个新的 dataframe,避免直接修 09/05 08:49
22F:→ gmccntzx1: 改原始资料。 09/05 08:49
23F:→ gmccntzx1: 所以如果你不是把 inplace 设为 true 的话,你就要去 09/05 08:50
24F:→ gmccntzx1: 接 dropna 回传的资料。 09/05 08:50
25F:→ gmccntzx1: 而如果你设 inplace=True,那写法就变成 df.dropna(in 09/05 08:52
26F:→ gmccntzx1: place=True) 即可,跑完这行後,df 就是你要的结果。 09/05 08:52
27F:推 TitanEric: 你要删row有包含Nan应该是axis=0,how='any' 刚试有成功 09/05 08:53
28F:→ TitanEric: 记得接return值 09/05 08:53
29F:→ TitanEric: 啊 感谢前面帮忙 09/05 08:54
30F:→ gmccntzx1: 没事,只是觉得不要让原 PO 解完问题却不知道原因是什 09/05 08:57
31F:→ gmccntzx1: 麽 09/05 08:57
32F:推 gulaer: how的话是全部都nan才会删除喔!不放才是default有一格是n 09/09 07:46
33F:→ gulaer: an就删掉整列 09/09 07:46