我正在.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)
如何删除这些行?
答案 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)