当前位置: 首页 > 知识库问答 >
问题:

Python:如何删除特定列为空的行/nan?

丌官玺
2023-03-14
import pandas as pd
data = pd.read_csv('my_data.csv', sep=',')
data.head()
id    city    department    sms    category
01    khi      revenue      NaN       0
02    lhr      revenue      good      1
03    lhr      revenue      NaN       0

我想删除SMS列为空/nan的所有行。做这件事的有效方法是什么?

共有1个答案

薛望
2023-03-14

使用dropna参数subset指定用于检查的列nans:

data = data.dropna(subset=['sms'])
print (data)
   id city department   sms  category
1   2  lhr    revenue  good         1

使用布尔索引Notnull的另一个解决方案:

data = data[data['sms'].notnull()]
print (data)
   id city department   sms  category
1   2  lhr    revenue  good         1

查询的备选方案:

print (data.query("sms == sms"))
   id city department   sms  category
1   2  lhr    revenue  good         1
#[300000 rows x 5 columns]
data = pd.concat([data]*100000).reset_index(drop=True)

In [123]: %timeit (data.dropna(subset=['sms']))
100 loops, best of 3: 19.5 ms per loop

In [124]: %timeit (data[data['sms'].notnull()])
100 loops, best of 3: 13.8 ms per loop

In [125]: %timeit (data.query("sms == sms"))
10 loops, best of 3: 23.6 ms per loop
 类似资料:
  • 问题内容: 我有一个csv文件。我读了: 它的输出如下: 我想删除列为空/ NaN的所有行。什么是有效的方法? 问题答案: 使用带有参数的指定检查列S: 用另一种解决方案和: 另一种选择: 时机

  • 本文向大家介绍python如何删除列为空的行,包括了python如何删除列为空的行的使用技巧和注意事项,需要的朋友参考一下 1.摘要 dropna()方法,能够找到DataFrame类型数据的空值(缺失值),将空值所在的行/列删除后,将新的DataFrame作为返回值返回。 2.函数详解 函数形式:dropna(axis=0, how='any', thresh=None, subset=None

  • 问题内容: 我有这个DataFrame,只想要EPS列不是的记录NaN: …例如df.drop(....)要得到这个结果的数据框: 我怎么做? 问题答案: 不要。就拿行,其中是有限的:

  • 问题内容: 我有一个清单,里面有空清单: 如何删除空列表,以便获得: 我尝试了list.remove(’‘),但这不起作用。 问题答案: 尝试 如果您想摆脱所有“虚假”的东西,例如空字符串,空元组,零,您也可以使用

  • 问题内容: 这是对该问题的扩展,OP希望知道如何删除单列值为NaN的行。 我想知道如何删除 2 (或更多)列中的值 均为 NaN的行。使用第二个答案的创建的数据框: 如果我使用命令,特别是使用,那么它将完成一个“或”类型的放置并离开: 我想要的是一个“和”类型放置,它将放置行中的列索引为1 和 2的行删除。这将留下: 仅删除第一行的位置。 有任何想法吗? 编辑:更改数据框值以保持一致性 问题答案:

  • 我刚认识蟒蛇熊猫。需要一些关于删除有空值的几行的帮助。在屏幕截图中,我需要使用python Pandas删除中的行。