为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas any() 返回 false 且存在真值

Pandas any() 返回 false 且存在真值

动漫人物 2021-07-06 13:15:02
我有一个格式很差的日期的大部分空数据框,我将其转换为 DateTime 格式。from io import StringIOdata = StringIO("""issue_date,issue_date_dt,,19600215.0,1960-02-15,,""")df = pd.read_csv(data, parse_dates=[1])其中产生    issue_date  issue_date_dt0   NaN         NaT1   NaN         NaT2   19600215.0  1960-02-153   NaN         NaT4   NaN         NaT我希望我可以使用 df.any() 来查找行或列中是否有值。axis=0表现如预期:df.any(axis=0)issue_date       Trueissue_date_dt    Truedtype: bool但axis=1只是一直为所有行返回 false。df.any(axis=1)0    False1    False2    False3    False4    Falsedtype: bool
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

我不完全确定为什么会发生这种情况[1],我最好的猜测是沿第一个轴的不同数据类型导致了这种意想不到的结果,正如any沿轴预期的那样工作0。 但是,我认为解决这个问题的方法实际上是一种更好的方法,因为读者可以更直接地了解您要检查的内容。


这可能是一个错误,如果您同意我建议在pandas github 页面上打开一个问题。


解决方法很简单,利用notnulltoany在 type 的同bool构掩码上使用,而不是包含混合类型的 DataFrame


df.notnull().any(1)

0    False

1    False

2     True

3    False

4    False

dtype: bool


查看完整回答
反对 回复 2021-07-13
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信