我需要选择计数大于2的列名。我有此数据集:
Index | col_1 | col_2 | col_3 | col_4
-------------------------------------
0 | 5 | NaN | 4 | 2
1 | 2 | 2 | NaN | 2
2 | NaN | 3 | NaN | 1
3 | 3 | NaN | NaN | 1
预期结果是一个列表:['col_1','col_4']
当我使用
df.count() > 2
我明白了
col_1 True
col_2 False
col_3 False
col_4 True
Length: 4, dtype: bool
这是测试代码
import pandas as pd
import numpy as np
data = {'col_1': [5, 2, np.NaN, 3],
'col_2': [np.NaN, 2, 3, np.NaN],
'col_3': [4, np.NaN, np.NaN, np.NaN],
'col_4': [2, 2, 1,1]}
frame = pd.DataFrame(data)
frame.count() > 2
答案 0 :(得分:0)
您可以这样做。
import pandas as pd
import numpy as np
data = {'col_1': [5, 2, np.NaN, 3],
'col_2': [np.NaN, 2, 3, np.NaN],
'col_3': [4, np.NaN, np.NaN, np.NaN],
'col_4': [2, 2, 1,1]}
frame = pd.DataFrame(data)
expected_list = []
for col in list(frame.columns):
if frame[col].count() > 2:
expected_list.append(col)
答案 1 :(得分:0)
使用dict
可以轻松解决此问题:
frame[[key for key, value in dict(frame.count() > 2).items() if value]]
答案 2 :(得分:0)
尝试:
(df.columns)[(df.count() > 2).values].to_list()