【问题标题】:drop na for tuples in series Python为 Python 系列中的元组删除 na
【发布时间】:2020-03-02 15:45:13
【问题描述】:

假设我有一个系列

 a = pd.Series([(1,2), (3,4), (float('NaN'),float('NaN'))])

如何从系列中删除 (nan,nan)?

问候,

【问题讨论】:

标签: python tuples series na


【解决方案1】:

假设您只想保留不包含 NaN 值的对,您可以这样做:

a = a[~ a.apply(lambda x: np.isnan(x[0] or np.isnan(x[1])))]

【讨论】:

  • 所有答案都很好,但这最符合我的目的!谢谢谢尔盖。
【解决方案2】:

如果你想通过 pandas 得到它,首先过滤一个分解的数据框

df[['x', 'y']] = pd.DataFrame(a.tolist(), index=a.index)  
df.dropna(how='all', inplace=True)

然后返回元组列表

new_tuples = [tuple(x) for x in df.to_numpy()]

【讨论】:

    【解决方案3】:

    很多很好的答案,但你也可以试试这个:

    pd.Series([(x,y) for (x,y) in a if ~np.isnan(x) and ~np.isnan(y)])
    

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 2016-07-10
      • 1970-01-01
      • 2016-04-11
      • 2016-09-25
      • 2018-02-22
      • 1970-01-01
      • 2017-10-09
      • 2017-08-15
      相关资源
      最近更新 更多