大熊猫具有条件的独特价值

时间:2020-06-02 20:49:18

标签: python pandas filtering unique

我正在使用pandas DataFrame,我需要遍历一列的唯一值。 这样的列可能包含我不想循环通过的值,例如“

我通常这样做:

edges = [edge for edge in estados['EDGE'].unique() if edge != '']
for edge in edges:
    pass

我的问题是,是否有一种泛泛的方式来构建不同于理解列表的列表。

喜欢:

estados['EDGE'].unique().exclude('')

谢谢

注意: 我在寻找解决方案,例如: nunique excluding some values in pandas Python pandas unique value ignoring NaN 但是这些解决方案甚至比我的简洁。

2 个答案:

答案 0 :(得分:1)

您可以使用NOT运算符~

estados[~estados['EDGE'] == '']['EDGE'].dropna().unique()

使用.ne

estados[estados['EDGE'].ne('')]['EDGE'].dropna().unique()

答案 1 :(得分:0)

您可以将pd.Series.maskpd.Series.dropnapd.Series.unique一起使用

m = estados['EDGE']==''
estados['EDGE'].mask(m).dropna().unique()

或与pd.Series.notna

m = (estados['EDGE']!='') & (estados['EDGE'].notna())

estados['EDGE'][m]