Сначала создать индекс по первому столбцу с помощью параметра set_index
или index_col
в read_csv
:
df = df.set_index('Unnamed: 0')
#alternative if possible
#df = pd.read_csv(file, index_col=0)
print (df)
2000 2001 2002 2003 2004 2005 \
Unnamed: 0
North America 109.24 119.60946 144.29389 187.86691 227.29032 265.21215
Bermuda 0.00 0.00000 0.00000 0.00000 0.00000 0.00000
Canada 3.70 3.90000 4.00000 4.00000 4.00000 4.60000
Greenland 0.00 0.00000 0.00000 0.00000 0.00000 0.00000
Mexico 0.00 0.00000 0.00000 0.00000 0.00000 0.00000
2006 2007 2008 2009 2010
Unnamed: 0
North America 340.15054 472.83005 666.47907 768.71809 914.4242
Bermuda 0.00000 0.00000 0.00000 0.00000 0.0000
Canada 5.20000 15.40000 16.70000 22.10000 26.4000
Greenland 0.00000 0.00000 0.00000 0.00000 0.0000
Mexico 0.00000 0.10000 0.10000 0.10300 0.4000
out = df.index[df.gt(50).any(axis=1)].tolist()
print (out)
['North America']
Объяснение
Сравнение всех данных по DataFrame.gt
, (>
):
print (df.gt(50))
2000 2001 2002 2003 2004 2005 2006 2007 2008 \
Unnamed: 0
North America True True True True True True True True True
Bermuda False False False False False False False False False
Canada False False False False False False False False False
Greenland False False False False False False False False False
Mexico False False False False False False False False False
2009 2010
Unnamed: 0
North America True True
Bermuda False False
Canada False False
Greenland False False
Mexico False False
И проверьте, является ли хотя бы одно значение в строке True
на DataFrame.any
:
print (df.gt(50).any(axis=1))
Unnamed: 0
North America True
Bermuda False
Canada False
Greenland False
Mexico False
dtype: bool
Последний фильтр по boolean indexing
с df.index
:
print (df.index[df.gt(50).any(axis=1)])
Index(['North America'], dtype='object', name='Unnamed: 0')