【问题标题】:Pandas TypeError: '<' not supported between instances of 'datetime.time' and 'int'Pandas TypeError:“datetime.time”和“int”实例之间不支持“<”
【发布时间】:2021-09-27 14:04:07
【问题描述】:

我有一个包含 2 个文本列的数据框(数据是从 excel 导入的,我使用的是 anaconda pandas v. 1.2.5,FWIW):

Data columns (total 2 columns):
 #   Column                     Non-Null Count   Dtype 
---  ------                     --------------   ----- 
 0   Client Name: Trading Name  169532 non-null  object
 1   Policy Number              166950 non-null  object

我想检查行是否唯一(即没有重复的组合)。所以我跑了:

ops_uniq_cols = ['Client Name: Trading Name', 'Policy Number']
ops_u.groupby(ops_uniq_cols).size()

我得到错误: TypeError: '&lt;' not supported between instances of 'datetime.time' and 'int'

这是怎么回事?两列都不是时间或整数。

更新,这里是一些示例数据:

Client Name: Trading Name   Policy Number
24419   Y Corporation   9742EA|BC0697|1
37963   PERFORMANCE LIMITED Y13333120A
14411   B KEN   56A439MVA
133801  Mutua   69285
109983  DANIEL & CO Y1212E0720A

在我看来,这些都不像日期时间。

【问题讨论】:

  • 如果您添加这样的聚合器列会发生什么:ops_u.groupby(ops_uniq_cols)['Client Name: Trading Name'].size()?
  • 当我运行:ops_u.groupby(ops_uniq_cols)['Client Name: Trading Name'].size(),我仍然得到同样的错误:(
  • ops_uniq_cols 中哪一个是 time like 专栏?
  • 嗨@AnuragDabas,据我所知,他们都没有,这是一个示例(更改了一些名称)
  • 试试df.applymap(lambda x:type(x).__name__).eq("time").any()看看它会返回什么

标签: python pandas dataframe


【解决方案1】:

df.applymap(lambda x:type(x).__name__).eq("time").any() per @AnuragDabas 确实返回了一个时间,我更改了 dtype。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-15
    • 2020-09-07
    • 1970-01-01
    • 2018-06-06
    • 2018-09-03
    • 2020-11-13
    • 2021-01-15
    • 2020-06-02
    相关资源
    最近更新 更多