【问题标题】:how can i find a not timestamp data in dataframe python?如何在数据框 python 中找到非时间戳数据?
【发布时间】:2019-07-04 16:35:15
【问题描述】:

这是时间戳列:

TIME
2018-03-02 11:57:37
2018-03-12 10:36:16
2018-03-29 12:02:21
2018-03-23 16:37:08
2018-03-09 22:22:28
         .
         .

我尝试合并并遇到以下错误。

TypeError: '<' not supported between instances of 'datetime.datetime' and 'int'

所以我试图找到一个具有不同数据类型的列,如代码下,但没有成功。

for i in range(len(ds)):
    if type(ds['TIME'].loc[i]) != type(ds['TIME'].loc[1]) : 
        ds = ds.drop(i)
# type(ds['TIME'].loc[1]) was confirmed that it was a timestamp type 

我该如何解决这个问题?

如果您能给我一些好的建议,我将不胜感激。

这是我尝试的。

raw_data = pd.merge_ordered(ds,ds2)
#ds2 is similar data like ds

+我认为这可能是 db 中的解析问题。

【问题讨论】:

    标签: python dataframe timestamp


    【解决方案1】:

    我相信您需要创建默认索引以防止被reset_index 重复,然后调用drop_duplicates

    ds['TIME'].reset_index(drop=True).drop_duplicates()
    

    如果可能多列:

    ds.reset_index(drop=True).drop_duplicates(subset=['TIME'])
    

    【讨论】:

    • 感谢您给我一个很好的比较。尽管如此,上面出现的错误仍未解决。有没有办法解决这个错误?
    • 我也没有工作。我使用 type() 检查所有数据类型,所有数据都是相同的()。好难解决ㅜㅜ
    • 在我的真实数据中它没有重复的日期(检查 ds.drop_duplicate())。 TypeError: '
    • @송준석 - 你认为ds['TIME'].drop_duplicates() 吗?如果失败,请尝试ds['TIME'].reset_index(drop=True).drop_duplicates()
    • 我认为它不起作用。如果你给你的电子邮件,我会发送真实数据。看实际数据,问题似乎更清楚了。
    【解决方案2】:

    尝试使用内置的 type() 函数。 我不知道这是否正确,但很简单:

    if 'datetime' in str(type(ds)):
        print('Is a datetime format')
    

    【讨论】:

    • 如果是我的数据, str(type(ds)) 的结果是 "" 所以我使用上层代码使用 'timestamps'但它也没有用
    猜你喜欢
    • 1970-01-01
    • 2016-01-14
    • 2018-12-05
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多