jes*_*WUT 9 python datetime pandas
我有一个很空的数据帧,格式很差的日期我转换成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])
Run Code Online (Sandbox Code Playgroud)
哪个产生
issue_date issue_date_dt
0 NaN NaT
1 NaN NaT
2 19600215.0 1960-02-15
3 NaN NaT
4 NaN NaT
Run Code Online (Sandbox Code Playgroud)
我希望我可以使用df.any()来查找行或列中是否有值.axis=0表现如预期:
df.any(axis=0)
issue_date True
issue_date_dt True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
但是axis=1只对所有行返回false.
df.any(axis=1)
0 False
1 False
2 False
3 False
4 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
我不完全确定为什么会发生这种情况[1],我最好的猜测是沿着第一个轴的不同数据类型会导致这种意外结果,因为any沿轴预期工作0. 但是,我认为对此的解决方法实际上是一种更好的方法,因为读者会更清楚地知道您正在检查什么.
这可能是一个错误,如果您同意我建议在pandas github页面上打开一个问题.
解决方法是简单的,利用notnull使用any对型的均匀掩模bool,而不是包含混合类型数据帧一个
df.notnull().any(1)
Run Code Online (Sandbox Code Playgroud)
0 False
1 False
2 True
3 False
4 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
[1]这似乎被认为是一个错误
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |