TypeError:<class'datetime.time'>不能转换为datetime

Tyl*_*rNG 2 date pandas

问题有点简单。我的目标是计算两个日期(例如A和B)之间的天差。
这是我的尝试:

df['daydiff'] = df['A']-df['B']

df['daydiff'] = ((df['A']) - (df['B'])).dt.days

df['daydiff'] = (pd.to_datetime(df['A'])-pd.to_datetime(df['B'])).dt.days
Run Code Online (Sandbox Code Playgroud)

这些以前对我有用,但由于某种原因,这次我一直收到此错误:

TypeError:类'datetime.time'不能转换为datetime

当我将df导出到excel时,日期就可以了。任何想法?

emm*_*t02 6

使用pd.Timestamp处理格式化时间中的尴尬差异。

df['A'] = df['A'].apply(pd.Timestamp)  # will handle parsing
df['B'] = df['B'].apply(pd.Timestamp)  # will handle parsing
df['day_diff'] = (df['A'] - df['B']).dt.days
Run Code Online (Sandbox Code Playgroud)

当然,如果您不想在要输出的DataFrame中更改df ['A']和df ['B']的格式,则可以单行执行。

df['day_diff'] = (df['A'].apply(pd.Timestamp) - df['B'].apply(pd.Timestamp)).dt.days
Run Code Online (Sandbox Code Playgroud)

这将使您之间的天数为整数。

  • 谢谢!但是,我仍然收到 TypeError:无法将 <class 'datetime.time'> 类型的输入 [00:00:00] 转换为 Timestamp :( (5认同)
  • @TylerNG嘿,我想知道您是如何工作的?我在尝试解决自己的不同问题时遇到了类似的问题(TypeError:无法将类型<class'datetime.time'>的输入[11:00:00]转换为Timestamp)。谢谢! (2认同)