日期时间变量为空
Posted
技术标签:
【中文标题】日期时间变量为空【英文标题】:DateTime variable is empty 【发布时间】:2020-03-29 03:37:02 【问题描述】:我想要一个空值的 if 条件。您可以在下面看到我的变量“endedAt”,它是一个 DateTime 变量。但是,它有一些空白值,其值为“NaT”。现在我想为这些空值创建一个条件。但我不知道如何引用它们。我尝试了以下方法:
1. if(df.iloc[i]['endedAt'] == 'NaT'):
2. if(df.iloc[i]['endedAt'] == ''):
但是它们都不起作用,并且我在 if 语句中的内容没有执行。
示例数据:
结束时间
NaT
2018-11-20 01:10:43
2018-11-19 20:21:57
2018-11-19 20:06:23
2018-11-19 04:05:36
【问题讨论】:
你可以使用类似if pd.isnull(d) for d in df1['endedAt']
的命令
如果要比较两个字符串('NaT'),请使用“if a in b”。在第二种情况下,它可能有空间,我建议使用 strip() 函数。还要检查您获得的价值和价值类型。返回值可能不是字符串类型。
谢谢 Yogesh 成功了,你能解释一下你在做什么吗?
【参考方案1】:
你可以像if df.iloc[i]['endedAt'] is pd.NaT:
一样使用pd.Nat
:
import pandas as pd
dt = pd.to_datetime([
None,
pd.Timestamp("2018-11-20 01:10:43"),
pd.Timestamp("2018-11-19 20:21:57"),
pd.Timestamp("2018-11-19 20:06:23"),
pd.Timestamp("2018-11-19 04:05:36"),
])
df = pd.DataFrame("endedAt": dt)
print(df)
for i in range(len(df)):
if df.iloc[i]['endedAt'] is pd.NaT:
print("\nNaT row index:", i)
输出:
endedAt
0 NaT
1 2018-11-20 01:10:43
2 2018-11-19 20:21:57
3 2018-11-19 20:06:23
4 2018-11-19 04:05:36
NaT row index: 0
【讨论】:
以上是关于日期时间变量为空的主要内容,如果未能解决你的问题,请参考以下文章
ASP SQL中,查询条件为日期字段的一个时间段,或者日期字段为空,怎么写查询