我有一个日期格式很大的空数据框,我将其转换为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
答案 0 :(得分:7)
我不确定为什么会发生这种情况 [1] ,我最好的猜测是沿第一轴的不同数据类型会导致此意外结果,例如{ {1}}沿轴any
正常工作。 但是,我认为无论如何,这种解决方法实际上是一种更好的方法,因为它可以使读者更清楚地知道您到底要检查什么。
这可能是一个错误,如果您同意我建议在0
github page上打开一个问题。
解决方法很简单,请使用pandas
在类型notnull
的同构掩码上使用any
,而不是在包含混合类型的DataFrame中使用
bool
df.notnull().any(1)
[1] 这似乎是recognized as a bug