【问题标题】:TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.time'类型错误:+ 不支持的操作数类型:“datetime.datetime”和“datetime.time”
【发布时间】:2021-02-01 18:19:46
【问题描述】:

我有一个熊猫数据框:

In [33]: df
Out[33]:
                         userId          2021-01-29          2021-01-30          2021-01-01
0                Nl3AG93Ss7L5aj            09:00:00                 NaN                 NaN
1                           NaN                 NaN                 NaN                 NaN
2                AbVpBHdfrI5aj1            12:10:00                 NaN                 NaN
3                           NaN                 NaN                 NaN                 NaN
4                           NaN                 NaN                 NaN                 NaN
5               sad9283ds7L5aj1                 NaN            15:35:00            22:22:00
6                           NaN                 NaN                 NaN                 NaN
7                           NaN                 NaN                 NaN                 NaN
8                           NaN                 NaN                 NaN                 NaN

我需要获取脚本开始工作的日期和时间,但出现错误:

TypeError Traceback (most recent call last)
<ipython-input-40-7ed51ff0c115> in <module>
      1 for column in df.columns.tolist():
----> 2     for  i in df.loc[df[column].apply(lambda x: isinstance(x, datetime.time))][column]: print(column + i)
      3

TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.time'

我也可以在不合并的情况下输出时间表:

In [22]: for column in df.columns.tolist():
    ...:     for  time in df.loc[df[column].apply(lambda x: isinstance(x, datetime.time))][column]: print(column, time)
    ...:
2021-01-29 00:00:00 09:00:00
2021-01-29 00:00:00 12:10:00
2021-01-30 00:00:00 15:35:00
2021-01-01 00:00:00 22:22:00

【问题讨论】:

    标签: python pandas dataframe datetime


    【解决方案1】:

    尝试将内容转换为字符串,然后将+ 用作字符串连接...

    for column in df.columns.tolist():
        for  i in df.loc[df[column].apply(lambda x: isinstance(x, datetime.time))][column]: print(column.strftime("%Y-%m-%d”) +" "+ i.strftime("%H:%M:%S”))
          
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 2016-01-16
      • 2021-05-22
      • 2022-01-16
      • 1970-01-01
      相关资源
      最近更新 更多