根据python中的列中的值删除行

时间:2014-09-23 08:52:24

标签: python

我正在.csv文件上执行数据清理以执行分析。我正在尝试删除python中列中具有空值的行。

示例文件:

    Unnamed: 0  2012    2011    2010    2009    2008    2005
0   United States of America    760739  752423  781844  812514  843683  862220
1   Brazil  732913  717185  715702  651879  649996  NaN
2   Germany     520005  513458  515853  519010  518499  494329
3   United Kingdom (England and Wales)  310544  336997  367055  399869  419273  541455
4   Mexico  211921  212141  230687  244623  250932  239166
5   France  193081  192263  192906  193405  187937  148651
6   Sweden  87052   89457   87854   86281   84566   72645
7   Romania     17219   12299   12301   9072    9457    8898
8   Nigeria     15388   NaN     18093   14075   14692   NaN

目前使用的是:

from pandas import read_csv
link = "https://docs.google.com/spreadsheets......csv"
data = read_csv(link)
data.head(100000)

如何删除这些行?

2 个答案:

答案 0 :(得分:0)

加载数据后,您只需确定要删除的行:

bad_rows = np.any(np.isnan(data), axis=1)

然后:

data[~bad_rows].head(100)

答案 1 :(得分:0)

您需要使用dropna方法删除这些值。如果任何的值为how='any',那么将null作为参数传入方法将删除该行,而how='all'只会在中删除该行所有值均为null

cleaned_data = data.dropna(how='any')

修改1。

值得注意的是,您可能不想创建已清理数据的副本。 (即cleaned_data = data.dropna(how='any')

为了节省内存,您可以传递inplace选项,该选项将修改原始DataFrame并返回None

data.dropna(how='any', inplace=True)
data.head(100)