作者:QJ974 | 来源:互联网 | 2022-12-02 16:50
我有一个很空的数据帧,格式很差的日期我转换成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
user3483203..
7
我不完全确定为什么会发生这种情况[1],我最好的猜测是沿着第一个轴的不同数据类型会导致这种意外结果,因为any
沿轴预期工作0
. 但是,我认为对此的解决方法实际上是一种更好的方法,因为读者会更清楚地知道您正在检查什么.
这可能是一个错误,如果您同意我建议在pandas
github页面上打开一个问题.
解决方法是简单的,利用notnull
使用any
对型的均匀掩模bool
,而不是包含混合类型数据帧一个
df.notnull().any(1)
0 False
1 False
2 True
3 False
4 False
dtype: bool
[1]这似乎被认为是一个错误
1> user3483203..:
我不完全确定为什么会发生这种情况[1],我最好的猜测是沿着第一个轴的不同数据类型会导致这种意外结果,因为any
沿轴预期工作0
. 但是,我认为对此的解决方法实际上是一种更好的方法,因为读者会更清楚地知道您正在检查什么.
这可能是一个错误,如果您同意我建议在pandas
github页面上打开一个问题.
解决方法是简单的,利用notnull
使用any
对型的均匀掩模bool
,而不是包含混合类型数据帧一个
df.notnull().any(1)
0 False
1 False
2 True
3 False
4 False
dtype: bool
[1]这似乎被认为是一个错误