gpt4 book ai didi

python - Pandas any() 返回 false 且存在 true 值

转载 作者:太空狗 更新时间:2023-10-29 20:23:30 26 4
gpt4 key购买 nike

我有一个大部分为空的数据框,其中包含格式不正确的日期,我已将其转换为 DateTime 格式。

from io import StringIO

data = StringIO("""issue_date,issue_date_dt
,
,
19600215.0,1960-02-15
,
,""")

df = pd.read_csv(data, parse_dates=[1])

产生

    issue_date  issue_date_dt
0 NaN NaT
1 NaN NaT
2 19600215.0 1960-02-15
3 NaN NaT
4 NaN NaT

我希望我可以使用 df.any() 来查找行或列中是否有值。 axis=0 的行为符合预期:

df.any(axis=0)

issue_date True
issue_date_dt True
dtype: bool

但是 axis=1 始终对所有行返回 false。

df.any(axis=1)

0 False
1 False
2 False
3 False
4 False
dtype: bool

最佳答案

我不完全确定为什么会发生这种情况[1],我最好的猜测是第一个轴上的不同数据类型导致了这个意外的结果,因为 any 沿轴 0 按预期工作。 但是,我认为解决这个问题的方法实际上是一个更好的方法,因为读者可以更清楚地知道您到底在检查什么。


这可能是一个错误,如果你同意我建议在 pandas 上打开一个问题 github page .

解决方法很简单,利用 notnullbool 类型的同质掩码上使用 any,而不是包含混合的 DataFrame类型

df.notnull().any(1)

0    False
1 False
2 True
3 False
4 False
dtype: bool

[1] 这似乎是 recognized as a bug

关于python - Pandas any() 返回 false 且存在 true 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52732364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com