我有一个格式很差的日期的大部分空数据框,我将其转换为 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
添加回答
举报
0/150
提交
取消