如何过滤同时具有浮点数和日期时间的列
How to filter on a column that has both float and datetime
我的数据框中有一列同时具有 datetime
值和 float
值。如何过滤掉 float
值?我尝试了以下方法:
import datetime
a = pd.DataFrame([10.0,datetime.datetime.now(),20.0])
a = a[a.dtype!=float]
这不起作用,因为 pandas 说整个列都是数据类型对象。目标是摆脱 10 和 20,只保留当前时间值。
我高度怀疑您看到的浮点数是 NaN 值。所以,我建议这样做:
a_float_free = a.dropna()
另一方面,如果我的怀疑是错误的,您可以使用
过滤掉浮点数
import datetime
a = pd.DataFrame([10.0,datetime.datetime.now(),20.0])
a_float_free = a[a[0].apply(lambda x: not isinstance(x, float))]
PS:在问题的虚拟示例中,您给出了 int
s 而不是 float
s。我冒昧地将它们更改为 float
我的数据框中有一列同时具有 datetime
值和 float
值。如何过滤掉 float
值?我尝试了以下方法:
import datetime
a = pd.DataFrame([10.0,datetime.datetime.now(),20.0])
a = a[a.dtype!=float]
这不起作用,因为 pandas 说整个列都是数据类型对象。目标是摆脱 10 和 20,只保留当前时间值。
我高度怀疑您看到的浮点数是 NaN 值。所以,我建议这样做:
a_float_free = a.dropna()
另一方面,如果我的怀疑是错误的,您可以使用
过滤掉浮点数import datetime
a = pd.DataFrame([10.0,datetime.datetime.now(),20.0])
a_float_free = a[a[0].apply(lambda x: not isinstance(x, float))]
PS:在问题的虚拟示例中,您给出了 int
s 而不是 float
s。我冒昧地将它们更改为 float