我需要清理一个数据框,并且只想选择其中一个行中具有特定值的列。例如,仅提取第3行中的值为NaN的那些列。
Joe的答案显示了如何基于列值获取行,似乎你想基于行值获取列。这是使用列表理解来实现此目的的简单方法。
In [45]: df = pd.DataFrame({'one': [2, 3, 4], 'two': [5, 6, 7], 'three': [8, 6, 1]})
In [46]: df
Out[46]:
one two three
0 2 5 8
1 3 6 6
2 4 7 1
现在,我们将分配变量以说明正在查看的行以及保留该列所需的值。然后,我们进行列表解析,并为过滤后的df重新命名
In [50]: row = 1
In [51]: value = 6
In [53]: list_comp = [c for c in df.columns if df[c][row] == value]
In [54]: filtered_df = df[list_comp]
In [55]: filtered_df
Out[55]:
two three
0 5 8
1 6 6
2 7 1