我有一个DataFrame,其中时间戳列包含混合类型。有些行以Unix时间戳(数字)报告时间,有些行以iso格式的字符串报告时间,其余行包含Pandas datetime对象。
我是否可以选择在timestamp列中具有非datetime对象的所有行?我想运行pd.to_datetime将这些行的timestamp列转换为datetime对象。
内置select_dtypes不能满足我的要求。该库函数选择(不)具有某种类型的列,但是我想选择给定列值为(而不是)特定类型的行。
示例:
df = pd.DataFrame({
'time': [
Timestamp('2019-03-31 00:00:00-0400', tz='US/Eastern'),
'2019-01-31 12:00:00-0700',
1551000000
] })
目标:
def get_not_datetime_rows(df):
"""Output the last two rows."""
答案 0 :(得分:0)
这样的事情(假设df
是您的DataFrame,而“ Timestamp”是有问题的列)是什么呢?
from datetime import datetime
idx = df["Timestamp"].apply(lambda x: type(x) != datetime)
然后使用idx
切片您的DataFrame