【问题标题】:pandas unique values with condition有条件的熊猫唯一值
【发布时间】:2020-06-02 20:49:18
【问题描述】:

我正在使用 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 但这些解决方案甚至不如我的简洁。

【问题讨论】:

    标签: python pandas filtering unique


    【解决方案1】:

    您可以使用 NOT 运算符~:

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

    使用.ne

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

    【讨论】:

      【解决方案2】:

      您可以将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]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-14
        • 1970-01-01
        • 1970-01-01
        • 2019-03-04
        • 1970-01-01
        • 2021-03-17
        • 1970-01-01
        • 2016-07-06
        相关资源
        最近更新 更多