【发布时间】:2019-03-14 21:37:44
【问题描述】:
我有一个大部分为空的数据框,其中包含格式不佳的日期,我将其转换为 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
【问题讨论】:
-
Similar question(不是骗子)。出于某种原因,
np.isnan()不适用于datetime64[ns]列。这可能导致不一致。 -
你可以试试
df.fillna(0).any(axis=1) -
可能是
df.dropna(axis=1)