如何为某个列值过滤 pandas DataFrame 并且仅过滤 return 没有 NAN 的列?
How to filter a pandas DataFrame for a certain column value and only return columns that do not have NAN?
示例数据:
In [42]:
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], 'year': [2000, 2001, 2002, 2001, 2002],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'])
Out[42]:
year state pop debt
0 2000 Ohio 1.5 NaN
1 2001 Ohio 1.7 NaN
2 2002 Ohio 3.6 NaN
3 2001 Nevada 2.4 NaN
4 2002 Nevada 2.9 NaN
我想过滤并获取特定年份(比如 2001 年)的 DataFrame,并忽略以 NaN 作为值的列,而且我不知道所有列的名称。在上述情况下,我想
Out[43]:
year state pop
1 2001 Ohio 1.7
3 2001 Nevada 2.4
dt[dt['year']==2001].dropna(axis=1)
示例数据:
In [42]:
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], 'year': [2000, 2001, 2002, 2001, 2002],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'])
Out[42]:
year state pop debt
0 2000 Ohio 1.5 NaN
1 2001 Ohio 1.7 NaN
2 2002 Ohio 3.6 NaN
3 2001 Nevada 2.4 NaN
4 2002 Nevada 2.9 NaN
我想过滤并获取特定年份(比如 2001 年)的 DataFrame,并忽略以 NaN 作为值的列,而且我不知道所有列的名称。在上述情况下,我想
Out[43]:
year state pop
1 2001 Ohio 1.7
3 2001 Nevada 2.4
dt[dt['year']==2001].dropna(axis=1)