我在清理一些数据,我一直在纠结一件事。
我有一个7740行和68列的 Dataframe 。
大多数列包含Nan值。
我感兴趣的是,当这两列中的值为NaN时,删除NaN值:[序列号标识]、[编号标识]
示例:
| 序列号|编号标识|
| - -|- -|
| 8 RY 68 U4 R型|不含N|
| 小行星8756|小行星875932|
| 不含N|不含N|
| 不含N|七八九六五二一|
| 7 EY 68 U4 R型|不含N|
| 小行星95856|九八八八八八八|
| 不含N|不含N|
| 不含N|小行星4555555|
结果
| 序列号|编号标识|
| - -|- -|
| 8 RY 68 U4 R型|不含N|
| 小行星8756|小行星875932|
| 不含N|七八九六五二一|
| 7 EY 68 U4 R型|不含N|
| 小行星95856|九八八八八八八|
| 不含N|小行星4555555|
当NaN在两列中时删除行。
我使用了以下方法:
df.dropna(subset=['SERIAL_ID', 'NUMBER_ID'], how='all', inplace=True)
当我在有68列的 Dataframe 上使用此方法时,得到的结果如下:
| 序列号|编号标识|
| - -|- -|
| 不含N|不含N|
| 不含N|不含N|
| 不含N|不含N|
| 不含N|七八九六五二一|
| 不含N|不含N|
| 小行星95856|不含N|
| 不含N|不含N|
| 不含N|小行星4555555|
我尝试了一个只有3列的 Dataframe 副本,它工作正常。
它以某种方式工作(我可以告诉,因为我在另一列中有一个相同的ID),但删除了一些值,我不知道为什么。
请帮帮忙我已经纠结了一整天了,再次感谢.
2条答案
按热度按时间nhjlsmyf1#
我不知道为什么它只适用于3列,而不是68原件。但是,我们可以获得 * 所需的输出 * 在其他方式。
使用
boolean indexing
:u91tlkcl2#
您可以使用
boolean
逻辑或简单地对任何给定列执行类似以下操作:返回以下内容: